пакетный файл для спорадического подключения к интернету - PullRequest
0 голосов
/ 04 мая 2011

Я видел пингеры и автодозвон, когда истекает время ожидания запроса.

проблема: но мне трудно исследовать часть 'counter or increment'.

idea: heresкак это должно быть:

начать непрерывный пинг при подключении к Интернету, в противном случае считать (или накапливать) время ожидания запроса до 1 или 60 минут ожидания, если соединение восстановилось после времени ожидания запроса и меньше чем«60 раз превышено время ожидания запроса», сбросьте «счетчик времени ожидания запроса» на ноль, если время ожидания запроса достигло 60 раз: запустите другой пакет или повторно подключитесь повторно.петля к интернет-соединению pinging

самое близкое, что я видел: (но по некоторым причинам это не работает на моем 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

титры к оригинальному постеру.спасибо

1 Ответ

0 голосов
/ 05 мая 2011

Было бы хорошо узнать, почему вышеприведенный скрипт не работает.Потому что, возможно, другие решения также не будут работать.Если вы используете неанглийскую версию 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
...