![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Перезапуск программы при пропадании интернета. |
|
CMD/BAT - Перезапуск программы при пропадании интернета.
|
Ветеран Сообщения: 981 |
Задача такая: Есть коннект менеджер для 4G интернета, но у него нет функции авто-переподключения при обрыве связи.
Есть такой скрипт: Работает, но если был дисконект во время таймаута 120с то срабатывает как и положено. А если дисконект был во время комманды проверки (ping) то программа перезапускается моментально, т.е сначала скрипт пытается запустить еще 1 копию программы не завершая предыдущую. После ошибки программы "programm is running" скрипт останавливается. |
|
------- Отправлено: 13:34, 18-12-2011 |
Пользователь Сообщения: 148
|
Профиль | Сайт | Отправить PM | Цитировать Попробуйте:
cmdow @ /HID @echo off echo %date% - %time%: Connection checking... >>auto.log set /a WaitTime=120*1 set Address=ya.ru set /a conn_avail=1 :ping ping -n 1 %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%==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 goto :ping ) ping -n %WaitTime% 127.0.0.1 > Nul goto :ping :reboot taskkill /f /t /im SW_WiMaxCM.exe > Nul ping -n 3 127.0.0.1 > Nul start /D "D:\4G\" SW_WiMaxCM.exe > Nul exit /b |
------- Последний раз редактировалось Dragokas, 18-12-2011 в 22:57. Отправлено: 22:48, 18-12-2011 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 16
|
Профиль | Отправить PM | Цитировать |
Отправлено: 22:54, 18-12-2011 | #3 |
Пользователь Сообщения: 148
|
Профиль | Сайт | Отправить PM | Цитировать Это у Freshtel-а автоподключение к интернету при запуске менеджера.
|
------- Отправлено: 23:05, 18-12-2011 | #4 |
Новый участник Сообщения: 16
|
Профиль | Отправить PM | Цитировать А можно мне к темке примазаться? Как раз пытаюсь сделать подобное, только у меня сложнее... У меня перезапуск утилиты не спасает, нужно передергивать модем (такое впечатление, что он зависает). В принципе мой батник работает, но иногда, когда соединение зависает, ping.exe сносит крышу. Вместо ошибок пинга она выдает
C:\Users\admin>ping 8.8.8.8 C:\Users\admin>ping 8.8.8.8 C:\Users\admin>ping 8.8.8.8 C:\Users\admin>ping 8.8.8.8 ... и так до бесконечности. Как победить, пока не знаю. ping -n 1 8.8.8.8 if not errorlevel 1 goto end ping -n 1 8.8.4.4 if not errorlevel 1 goto end ping -n 1 freshtel.ua if not errorlevel 1 goto end ping -n 1 ukr.net if not errorlevel 1 goto end d:\Portable\devcon\devcon.exe disable USB\VID_1076* ping -n 1 localhost > nul d:\Portable\devcon\devcon.exe enable USB\VID_1076* ping -n 4 localhost > nul d:\Portable\devcon\devcon.exe restart USB\VID_1076* echo %date% %time% >> d:\Portable\devcon\log.txt :end |
|
Отправлено: 23:31, 18-12-2011 | #5 |
Пользователь Сообщения: 148
|
Профиль | Сайт | Отправить PM | Цитировать Команда пинг и в правду иногда ведет себя подозрительно, но симитировать все ее ошибки не всегда получается.
Я смотрю Вы подряд пингуете несколько адресов... бывает что freshtel.ua не пингуется, а ukr.net работает? Могу посоветовать разве что найти какую-то другую методику проверки доступности инета или тот же пинг, но через другой интерфейс. Например, amel27 писал про WMI http://forum.oszone.net/post-1065308-8.html Попробуйте подставить туда Ваш код restart-а USB. |
------- Последний раз редактировалось Dragokas, 19-12-2011 в 00:27. Отправлено: 00:19, 19-12-2011 | #6 |
Пользователь Сообщения: 148
|
Профиль | Сайт | Отправить PM | Цитировать Сохраните этот код в файл myping.vbs
iPing = Ping("www.google.com") If iPing=0 Then WScript.Echo "0" Else WScript.Echo "1" End If Function Ping (strTarget) Set objWMIService = GetObject("winmgmts:\\.\root\cimv2") Set colPings = objWMIService.ExecQuery ("Select * From Win32_PingStatus where Address = '" & strTarget & "'") For Each objPing in colPings Ping = objPing.StatusCode Next End Function @Echo Off :ping for /f %%a in ('cscript //nologo myping.vbs') do set inet=%%a if %inet% == 1 ( d:\Portable\devcon\devcon.exe disable USB\VID_1076* ping -n 1 localhost > nul d:\Portable\devcon\devcon.exe enable USB\VID_1076* ping -n 4 localhost > nul d:\Portable\devcon\devcon.exe restart USB\VID_1076* echo %date% %time% >> d:\Portable\devcon\log.txt ping -n 5 localhost >nul ) else ping -n 120 localhost >nul goto :ping |
------- Отправлено: 00:47, 19-12-2011 | #7 |
Ветеран Сообщения: 981
|
Профиль | Сайт | Отправить PM | Цитировать Цитата YouHim:
![]() Ближе чем ya.ru ничего не найти, IP провайдера странным образом ходит через германию.. Последние 2 скрипта я так понял перезапускает не менеджер, а драйвер модема? Пробую все предложенные варианты, позже отпишу результат. Вот как все печально, 1 хоп закрыт, 2 уже 178мс. Трассировка маршрута к ya.ru [77.88.21.3] с максимальным числом прыжков 30: 1 * * * Превышен интервал ожидания для запроса. 2 178 ms 119 ms 80 ms 10.0.0.5 3 65 ms 174 ms 111 ms msk-ix-m9.yandex.net [193.232.244.93] 4 80 ms 144 ms 139 ms 213.180.213.102 5 * * * Превышен интервал ожидания для запроса. 6 54 ms 109 ms 104 ms www.yandex.ru [77.88.21.3] Трассировка завершена. |
|
------- Последний раз редактировалось Инсульт, 19-12-2011 в 01:59. Отправлено: 01:54, 19-12-2011 | #8 |
Пользователь Сообщения: 148
|
Профиль | Сайт | Отправить PM | Цитировать У меня, кстати, тоже Wimax от Альтернет (фрештел-а), только на выносной стац.антенне и модем под 220 В и по LAN-у подключается
![]() Цитата Инсульт:
Вам тоже подойдут эти 2 скрипта, если замените строки с "devcon" на свои "taskkill ..." P.S. Ну можно еще пробовать пинговать до yandex.net или напрямую на адрес 77.88.21.11 (выдал ping yandex.net), чтобы исключить ошибки DNS-сервера и т.п. задержки при переадресациях. |
|
------- Последний раз редактировалось Dragokas, 19-12-2011 в 03:07. Отправлено: 02:48, 19-12-2011 | #9 |
Ветеран Сообщения: 981
|
Профиль | Сайт | Отправить PM | Цитировать Что то не то... Сделал так:
При пропадании интернета устройство отключается и больше не включается. @Echo Off :ping for /f %%a in ('cscript //nologo myping.vbs') do set inet=%%a if %inet% == 1 ( "%SystemRoot%\system32\devcon.exe" disable USB\VID_1076* ping -n 1 localhost > nul "%SystemRoot%\system32\devcon.exe" enable USB\VID_1076* ping -n 4 localhost > nul "%SystemRoot%\system32\devcon.exe" restart USB\VID_1076* echo %date% %time% >> С:\clog.txt ping -n 5 localhost >nul ) else ping -n 120 localhost >nul goto :ping В окне пишет это: USB\VID_1076&PID_7F00\72130202 : Disabled 1 device(s) disabled. В "процес експлорере" видно что скрипт зациклен на команде device Disabled |
------- Отправлено: 03:18, 19-12-2011 | #10 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Разное - Автоматический перезапуск программы | alleo | Microsoft Windows 2000/XP | 12 | 24-05-2012 21:39 | |
Перезапуск программы | alleo | AutoIt | 9 | 21-02-2011 20:25 | |
Прочее - Автоматический перезапуск интернета | DJ@XON | Сетевые технологии | 2 | 30-06-2010 17:39 | |
CMD/BAT - Перезапуск explorer'а при наличии определённого запущенного приложения | Habetdin | Скриптовые языки администрирования Windows | 2 | 30-05-2009 17:30 | |
Автоматический перезапуск программы. | tueur | Программное обеспечение Windows | 9 | 21-09-2004 17:59 |
|