Board logo

标题: [网络连接] [已解决]批处理从文件中读取IP及端口并将ping&telnet的结果存在另一个文件中 [打印本页]

作者: ckjshi    时间: 2021-12-10 07:40     标题: [已解决]批处理从文件中读取IP及端口并将ping&telnet的结果存在另一个文件中

批处理,从文件中读取IP及端口号内容并逐一ping&telnet,将ping&telnet的成功和失败,
通过Windows批处理完成对全网IP状态的判断,并反馈结果到另一个文件中,要求如下:
1、比如要PING&telnet的IP文件IP_list.txt文件,ip格式如下:
192.169.5.13 80
127.0.0.1 3389
192.169.1.108 139
192.169.1.112 135

2、通过Ping&telnet命令,对IP_list.txt中的所有IP进行逐一ping和telnet,截取所需要的结果“通or不通”后生成到另一个Record.txt,要求格式如下:
IP地址/网络状态/端口号状态
192.169.5.13/ping通/80端口不通
127.0.0.1/ping通/3389端口通
192.169.1.108/ping不通/139端口不通
192.169.1.112/ping通/135端口不通

我先提前万分感谢大佬们帮我解决问题
作者: Batcher    时间: 2021-12-10 21:45

  1. @echo off & setlocal enabledelayedexpansion
  2. set /a check_num=0
  3. for /f "tokens=1,2 delims= " %%i in (Ip_list.txt) do (call :check_port %%i %%j)
  4. pause
  5. exit
  6. :check_port
  7. set server_ip=%1
  8. if not defined server_ip goto :eof
  9. set serverport=%2
  10. if not defined serverport goto :eof
  11. set /a check_num+=1
  12. if !check_num! equ 1 (echo.运行结果:>Record.txt)
  13. echo [No.!check_num!]:正在检测 !server_ip! 的 !serverport! 端口...
  14. (ping -n 2 !server_ip!|find "ms TTL=" >nul)&&(set /a isPing=1)||(set /a isPing=2&(echo !server_ip!/ping不通/!serverport!端口不通)&(echo !server_ip!/ping不通/!serverport!端口不通>>Record.txt)&(echo.))
  15. if !isPing! equ 2 (goto :eof)
  16. start /min cmd.exe /k "(telnet -e 'q' !server_ip! !serverport!)&exit"
  17. ping -n 5 127.0.0.1>nul
  18. (taskkill /fi "windowtitle eq Telnet !server_ip!"|find " PID " >nul)&&((echo !server_ip!/ping通/!serverport!端口通)&(echo !server_ip!/ping通/!serverport!端口通>>Record.txt))||((echo !server_ip!/ping通/!serverport!端口不通)&(echo !server_ip!/ping通/!serverport!端口不通>>Record.txt))
  19. echo.
  20. goto :eof
复制代码
是用的微信群里面有人发的这个代码吗?
希望这个代码糟糕的格式不要把刚刚开始学习批处理的你带跑偏了。
作者: xyh9999    时间: 2021-12-10 22:07

这代码是我在群里发的,想问管理员,这代码格式有这么糟糕吗??
作者: Batcher    时间: 2021-12-10 22:14

回复 3# xyh9999


感谢你乐于助人的精神。
写代码这事吧,自己开心就好,也不必太在意别人怎么说。
作者: ylmaster    时间: 2023-4-21 17:15

回复 2# Batcher


    大佬,怎么这个代码在win10上用不生效,没结果出来
作者: Batcher    时间: 2023-4-21 17:21

回复 5# ylmaster


代码不是我写的,我也不想修改这种格式糟糕的代码。
如果你想实现某个具体功能,建议另外找别的代码,或者单独发帖描述具体需求。

如果你就是想搞清楚这个代码为啥在Win10里面没效果,可以试试Q-01观察一下哪行代码在报错以及详细的报错信息:
https://mp.weixin.qq.com/s/Koje4FufWxWBs7ioDy_LJA
如果需要上传文件,可以用阿里云盘或百度网盘。

如果需要上传截图,可以找个图床,例如:
http://bbs.bathome.net/thread-60985-1-1.html




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2