windows – 批处理ERRORLEVEL ping响应

前端之家收集整理的这篇文章主要介绍了windows – 批处理ERRORLEVEL ping响应前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试使用批处理文件来确认使用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自己,所以我可以消除连接不良的变量.正如我之前所说,批次总是导致失败.奇怪的是,如果我将代码复制到命令提示符中,程序运行正常.有谁知道为什么程序在命令提示符下正常工作,但不能作为批处理工作?
谢谢

我不确定FIND和设置错误级别之间的交互是什么,但是你可以很容易地做到这一点:
@echo off
for /f %%i in ('ping racer ^| find /c "(0%% loss)"') do SET MATCHES=%%i
echo %MATCHES%

如果ping失败则打印0,如果成功则打印1.我只是寻找“0%损失”(不是特别是4个ping),以便可以定制ping的数量.

百分号已加倍,因此不会误认为应该替换的变量.

FOR技巧仅用于将命令的输出设置为环境变量的值.

猜你在找的Windows相关文章