工作需要批量ping一些IP地址,判断网络是否正常。上网搜下bat命令,发现很多人都提到根据ping回显去判断是否通,但是这样需要对操作系统的版本、显示语言进行判断,代码量会比较大。最后找到一个方法是通过ERRORLEVEL值来确定是否ping通,代码量小,对不同操作系统兼容性也更好。
echo "正在ping 1.2.3.4..."
ping 1.2.3.4 -w 200 -n 1 > nul
IF %ERRORLEVEL% LEQ 0 echo "1.2.3.4可以连通!"
IF %ERRORLEVEL% LEQ 1 echo "1.2.3.4无法连通!"
最后利用循环语句来读取txt文件中的IP地址就能批量对IP地址进行判断是否连通了。
iplist.txt 中每个IP地址为一行
1.2.3.4
2.3.4.5
3.4.5.6
@echo off&setlocal enabledelayedexpansion
for /f %%a in (iplist.txt) do ( set "ip=%%a"
echo 正在ping !ip!
ping 1.2.3.4 -w 500 -n 1 > nul
IF %ERRORLEVEL% LEQ 0 echo !ip! "可以连通!"
IF %ERRORLEVEL% LEQ 1 echo !ip! "无法连通!"
)
pause>nul