0

当请求超时时,我已经看到了 pingers 和自动重拨。

问题:但我很难研究“计数器或增量”部分。

想法:继承人应该是这样的:

在连接到 Internet 时开始连续 ping,否则计数(或累积)请求超时直到 1 分钟或 60 个请求超时,如果在请求超时后连接恢复且小于“60 次请求超时”,请重置“请求超时”如果请求超时达到 60 倍,则 counter' 归零:运行另一个批处理或重新连接重新拨号。循环到互联网连接 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

归功于原始海报。谢谢你

4

1 回答 1

0

很高兴知道为什么上面的脚本不起作用。因为可能其他解决方案也不起作用。如果您使用非英文版的windows,则需要替换文字“Reply”。

我认为以下应该有效。它只是实现了计数器。但是您可以自己尝试如何设置计数器以在 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
于 2011-05-04T20:51:20.197 回答