当请求超时时,我看到了ping和自动重拨。
问题:但是我很难研究"计数器还是增量"部分。
的想法:它应该是这样的:
连接到internet时开始连续ping,否则计算(或累积)请求超时,直到1分钟或60分钟请求超时。如果连接在请求超时后返回&小于"60次请求超时",重置请求超时计数器为零如果请求超时达到60倍:运行另一批或重新连接,重新拨号。ping
我最近看到的:(但由于某些原因,它不能在我的xp上工作)
@echo off
setLocal EnableDelayedExpansion
:loop
ping -n 2 10.174.10.48 >> log
find /i "Reply" < log > nul
if not errorlevel 1 type nul > log & goto :loop
for /f "tokens=1" %%a in ('find /c /i "Request timed out" ^< log') do (
if %%a geq 10 echo file.exe && type nul > log
)
goto :loop
来源:http://www.computing.net/answers/programming/ping-bat-file/16605.html
归功于原始海报。谢谢你
这将是很好的知道为什么上面的脚本不工作。因为其他的解决方法也可能不起作用。如果您使用非英文版本的windows,则需要替换文本"回复"。
我认为下面的方法应该有效。它只是实现了计数器。但是您可以自己尝试如何设置计数器以在60秒后执行脚本。
@echo off
:reset
set count=0
:loop
ping -n 2 10.174.10.48 | find /i "Reply"
if not errorlevel 1 goto :reset
set /A count=%count%+1
if %count% lss 100 got :loop
call reconnect
goto :reset