Есть такой скрипт:
Код:
Код: Выделить всё
cmdow @ /HID
@echo off
cls
echo %date% - %time%: Connection checking... >>auto.log
set /a WaitTime=120*1
set Address=ya.ru
set /a conn_avail=-1
call :ping
exit
:ping
ping %Address% > Nul
if ERRORLEVEL 0 (
if %conn_avail%==0 (
set /a conn_avail=1
echo %date% - %time%: Connection restored... >>auto.log
)
)
if ERRORLEVEL 1 (
if %conn_avail%==-1 (
echo %date% - %time%: Disconnected! Reconnecting... >>auto.log
)
if %conn_avail%==0 (
echo %date% - %time%: Unable to reconnect... >>auto.log
)
if %conn_avail%==1 (
echo %date% - %time%: Disconnected! Reconnecting... >>auto.log
)
set /a conn_avail=0
call :reboot
)
ping -n %WaitTime% 127.0.0.1 > Nul
call :ping
rem exit /b
:reboot
taskkill /f /im SW_WiMaxCM.exe > Nul
start /D "D:\4G\" SW_WiMaxCM.exe > Nul
exit /bРаботает, но если был дисконект во время таймаута 120с то срабатывает как и положено.
А если дисконект был во время комманды проверки (ping) то программа перезапускается моментально, т.е сначала скрипт пытается запустить еще 1 копию программы не завершая предыдущую. После ошибки программы "programm is running" скрипт останавливается.
А какой у вас он? Может и на наш подойдет?