希望在ping命令后使用findstr使其找到“ 0%损失”。
也许包括“损失高达50%”的任何事物。
这是为了检查并确保在在线启动某些设备之前100%建立了到Internet的连接。
目前结构如下:
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不起作用的情况,是否有更好的方法来测试Internet连接。
最佳答案
您要搜索的搜索字符串太宽。当您检查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/