检查ping答复 – 意外的结果

我在Windows XPbatch file中运行这个:

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 

我是否以错误的方式检查?

也许重新考虑你为什么要testing连通性(我假设你在做什么?)这样。 Ping不是确定主机连接的可靠方法:

  • Ping是ICMP,在不同的networking设备上可能有不同的结果,因此并不总是保证以相同的方式作出反应
  • 这可能会受到限制,因此偶尔不会返回任何结果
  • 丢弃的数据包,延迟或一般数据包丢失可能导致ping不能返回; 它甚至可以被QoS丢弃
  • Ping对路由环境或端到端/主机以外的其他问题没有任何描述

也许重新考虑你想要做的事情? 如果你给我们更多的信息,我相信我们可以提供一些更可靠的build议。

编辑:以下批处理脚本适用于我。

 @echo off ping -n 3 192.168.0.4 >nul: 2>nul: if %ERRORLEVEL% EQU 0 ( echo ok ) else ( echo not ok )