寻求一个批处理ping IP,当遇到ping不通的ip地址时输出“不通”

2024-11-30 05:33:00
推荐回答(3个)
回答1:

@echo off
set #1=192.168.0.10
set #2=192.168.1.20
set #3=192.168.2.30
set #3=192.168.3.40
for /f %%i in ('set #') do ping -n 2 %%i>nul||echo %%i 不通
pause

也可把地址保存在ip.txt,每个地址一行
@echo off
for /f %%i in (ip.txt) do ping -n 2 %%i>nul||echo %%i 不通
pause

回答2:

@echo off
:p21
set by=1
for /L %%a in (10,1,24) do (
for /f "tokens=1-4*" %%i in ('"ping 192.168.20.%%a -n 1 -l %by% -i 6|findstr out"') do echo 21.%%a %date:~0,10% %time:~0,8% 不通>>"ping不通.txt"
)

rem (10,1,24) 中的10是我要ping的起始地址,1是增量为一,24是最大值。也就是说ping完192.168.21.10,接着ping192.168.21.11,一直到192.168.21.24。后面的是一样的道理。

for /L %%a in (5,1,8) do (
for /f "tokens=1-4*" %%i in ('"ping 192.168.21.%%a -n 1 -l %by% -i 6|findstr out"') do echo 20.%%a %date:~0,10% %time:~0,8% 不通>>"ping不通.txt"
)

ping 127.1 -n 60
rem 上下两句表示间隔约60秒再开始重新ping。
goto p21
rem 输出结果可以告诉你在什么时间、ping 哪一个地址不通

回答3:

纠正 sudoku52的
最后一个3行有问题

@echo off
set #1=192.168.0.10
set #2=192.168.1.20
set #3=192.168.2.30
set #4=192.168.3.40
for /f "tokens=2 delims==" %%1 in ('set #') do ping /n 1 %%1
pause