网上的实现方式很多都是四处转载没有经过自身验证,复制下来使用各种报错,即便不报错但是结果也不符合预期。以下批处理本人在win10下经过验证测试没问题
一、预期效果:
自己写一批IP地址存入txt文件,每个地址对应用途说明;批处理调用txt文件,执行循环ping,通的写入ok.txt文件,不通的写入no.txt文件
二、应用场景:
做日志监控,实现在线预警

应用场景不在此文的讨论之列
三、实现步骤
1、新建IP地址表文件,AC_IP_list.txt

2、新建批处理文件,后缀.bat
%%A对应IP地址,%%B对应说明
@echo on
set Iplist=AC_IP_List.txt
:Ping
for /f "tokens=1,2" %%A in (%Iplist%) do (ping %%A -n 3 -w 1000 && echo %date% %time:~0,2%:%time:~3,2%:%time:~6,2% %%A - %%B >> ok.txt || echo %date% %time:~0,2%:%time:~3,2%:%time:~6,2% %%A - %%B >> no.txt)
timeout /t 1 >nul
goto Ping
3、循环ping将结果输入txt文档,通→ok.txt,不通→no.txt

说明:IP地址可以对应说明,192.168.120.25 交换机(中间是英文空格),网上很多代码都是ping %%A -n 1,当你改成ping %%A -n 2或ping %%A -n 3时,你会发现ping不通,并不会写入no.txt,原因如下
当使用-n 3发送3个数据包时,默认等待时间过长(每个包约4秒),可能使命令跳过失败判断。建议添加-w参数设置超时(如ping %D -n 3 -w 1000),将每次等待限制为1秒
1799

被折叠的 条评论
为什么被折叠?



