加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

windows – 批处理ERRORLEVEL ping响应

发布时间:2020-12-13 20:47:06 所属栏目:Windows 来源:网络整理
导读:我正在尝试使用批处理文件来确认使用ping的网络连接.我想进行批量运行,然后打印,如果ping成功与否.问题是它作为批处理运行时总是显示“失败”.这是代码: @echo offclsping racer | find "Packets: Sent = 4,Received = 4,Lost = 0 (0% loss),"if not errorl
我正在尝试使用批处理文件来确认使用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技巧仅用于将命令的输出设置为环境变量的值.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读