我在 Windows XP 批处理文件中运行此文件:
ping -n 3 10.1.1.2 >nul: 2>nul:
if %errorlevel%==0 (
echo ping reply arrived
) else (
echo no ping reply.
)
有时,似乎我没有收到 ping 回复,尽管在并行的 cmd 行窗口中运行
ping 10.1.1.2 -t
我检查的方式是否错误?
答案1
也许重新考虑一下为什么要以这种方式测试连通性(我假设这就是你正在做的事情?)。 Ping 不是确定主机连通性的可靠方法:
- Ping 是 ICMP,在不同的网络设备上可能会有不同的结果,因此不能保证总是以相同的方式做出反应
- 它可能受到速率限制,因此有时不会返回任何结果
- 丢包、延迟或一般数据包丢失都可能导致 ping 不返回;甚至可能被 QoS 丢弃
- Ping 不描述路由环境或除端到端/主机之外的任何问题
也许你应该重新考虑一下你正在尝试做什么?如果你给我们更多信息,我相信我们可以提供一些更可靠的建议。
编辑:以下批处理脚本对我有用。
@echo off
ping -n 3 192.168.0.4 >nul: 2>nul:
if %ERRORLEVEL% EQU 0 (
echo ok
) else (
echo not ok
)