希望使用 findstr 使其在 ping 命令后找到“0% 损失”。 也许是一系列高达“50% 的损失”。
这是为了检查并确保在发布在线内容之前 100% 建立互联网连接。
目前它是结构化的:
ping %ip% -n 3 -w 3000 | findstr "0% loss"
pause
goto Starting
它目前正在忽略 findstr,无论它拒绝找到我要找的东西
理想情况下它会像这样流动:
ping %ip% -n 3 -w 3000 | findstr "0% loss" || goto Echo
pause
goto Starting
:echo
Could not find "0% loss"
pause
我已经尝试过了,它会回显,但即使是 100% 连接,所以它显然没有按照我希望的方式运行。
是否有更好的方法来查找丢包百分比?
或者
如果设备完全离线时 ping 不起作用,是否有更好的方法来测试互联网连接。
最佳答案
您要查找的搜索字符串太宽泛。当您检查 findstr 是否有“0% 损失”时,您也无意中发现了“100% 损失”。幸运的是,ping
将数据包丢失放在括号中,因此您可以简单地将左括号包含在搜索字符串中。
@echo off
title Restart
color 0A
cls
:start
Cls
set ip=www.google.com
:Pingcheck
echo Checking ping..
timeout /t 3
ping %ip% -n 5 -w 3000 | findstr /C:"(0% loss" || goto Loss
pause
:NoLoss
echo We found 0 packet loss, at %ip% on %date% at %time%
pause
goto start
:Loss
echo We found some packet loss.
pause
我还更改了 :Echo
标签的名称,因为 echo
已经是一个命令,将它也作为标签会造成混淆。
关于batch-file - 使用 findstr 获取丢包的更好方法,批量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45260785/