gpt4 book ai didi

windows - 批量 ERRORLEVEL ping 响应

转载 作者:可可西里 更新时间:2023-11-01 12:40:32 28 4
gpt4 key购买 nike

我正在尝试使用批处理文件通过 ping 确认网络连接。我想做批处理,然后打印 ping 是否成功。问题是它在作为批处理运行时总是显示“失败”。这是代码:

@echo off
cls
ping racer | find "Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),"
if not errorlevel 1 set error=success
if errorlevel 1 set error=failure
cls
echo Result: %error%
pause

'racer' 是我电脑的名字。我正在让我的计算机 ping 自己,这样我就可以消除连接不良的变量。正如我之前所说,批处理总是导致失败。奇怪的是,如果我将代码复制到命令提示符中,程序运行良好。有谁知道为什么该程序在命令提示符下运行良好但不能作为批处理运行?谢谢

最佳答案

更可靠ping错误检查方法:

@echo off
set "host=192.168.1.1"

ping -n 1 "%host%" | findstr /r /c:"[0-9] *ms"

if %errorlevel% == 0 (
echo Success.
) else (
echo FAILURE.
)

这通过检查字符串是否为 69 ms 来工作。或 314msping 打印.

(Windows 的翻译版本可能会打印出 42 ms(带有空格),因此我们会对此进行检查。)

原因:

其他建议,比如匹配time=TTL不那么可靠,因为 ping IPv6 地址不显示 TTL (至少不在我的 Windows 7 机器上)和 Windows 的翻译版本可能会显示字符串的翻译版本 time= .此外,不仅可能time=被翻译,但有时它可能是time<而不是 time= ,如 time<1ms 的情况.

关于windows - 批量 ERRORLEVEL ping 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9329749/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com