如何在一个命令中输出Ping成功或失败,而不是两个?

时间:2016-03-23 19:12:21

标签: batch-file ping

以下是我当前代码的片段(有效):

PING <ip-address> |find "TTL=">nul && ECHO Responsive> <filename>
PING <ip-address> |find "TTL=">nul || ECHO Unresponsive> <filename>

在做一点research时我发现检查ERRORLEVEL有时会给出错误的结果,所以我选择使用上面的方法记录{{的成功或失败1}}。我也认为它看起来更清洁。

我遇到的问题是,在ip地址不可ping的情况下,命令会被调用两次,每个ping命令都需要一段时间才能完成。此外,在第一个命令期间计算机即将变为不可ping的(最坏情况)情况下,我可能会在我的日志文件中获得这两个结果。所以我想知道如何将这两行写成一个ping命令?

1 个答案:

答案 0 :(得分:2)

您可以使用:

PING <ip-address> |find "TTL=">nul && ECHO Responsive> <filename> || ECHO Unresponsive> <filename>

因为||如果最后一个命令没有成功执行,或者根本没有执行,则执行,所以如果之前的回声没有触发,那么这个命令就会执行。有关此外观的更多信息here