.bat
文件中的某些操作之前检查指定的主机是否可以访问IP。ping.exe
测试IP可达性,但是当指定的主机IP可达或网络无法访问时,我发现ping.exe
返回ERRORLEVEL 0。如何在.bat
文件中测试指定主机的IP可达性?
有没有办法区分IP可达和网络不可达ping.exe
,或任何其他命令来测试IP可达性?
答案 0 :(得分:1)
ping
的错误级别不可靠(正如您所注意到的)。 (ab)使用find
获取错误级别
ping 192.168.0.99 | find "TTL="
echo %errorlevel%
(注意:搜索TTL=
是最可靠的解决方案)
答案 1 :(得分:1)
你也可以使用类似的结构,(我成功时使用了Echo
命令):
Ping -n 1 151.141.90.381 | Find "TTL=" >Nul && Echo host is reachable
...或者更有可能在你的情况下,(如果主机无法访问,这将结束脚本,你想要运行的任何命令都将遵循该行):
Ping -n 1 151.141.90.381 | Find "TTL=" >Nul || GoTo :EOF