使用 ping.exe 的 ERRORLEVEL 测试 IP 可达性

Test IP reachability with ERRORLEVEL of ping.exe

背景

问题

如何测试 .bat 文件中指定主机的 IP 可达性?

有什么方法可以区分 IP 可达和网络不可达 ping.exe,或任何其他测试 IP 可达性的命令?

ping 的错误级别不可靠(如您所见)。 (ab) 使用 find 得到错误级别

ping 192.168.0.99 | find "TTL="
echo %errorlevel%

(注意:搜索TTL=是最靠谱的方案)

您也可以使用与此类似的结构,(成功后我使用了 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