![]() |
Devcon. Перезапуск устройства с использованием IF и FOR
Помогите пожалуйста c батником, который будет пере запускать устройство если оно запустилось с ошибкой.
Знаю, что нужно использовать devcon, findstr, if и goto да и с if, for не дружу. Как это всё реализовать - не знаю. При загрузке системы, устройство чаще всего запускается с ошибкой. Вот, что выдаёт: C:\Windows\system32>devcon64 status "@USB\VID_0079*PID_0007\5&326C0CBC&0&10" USB\VID_0079&PID_0007\5&326C0CBC&0&10 Name: USB- Device has a problem: 10. 1 matching device(s) found. Если сделать рестарт устройства 1-3 раза,всегда по разному, через команду devcon64 restatrt, оно запускается и работает нормально. Пишет: Driver is running. ЗАДАЧА: Как сделать, чтобы при запуске батника: 1.Проверка статуса устройства, если оно запущено нормально (Driver is running.), то ничего не делать. 2. Если запустилось с ошибкой (Device has a problem: 10.), то devcon64 restatrt. Причём команда повторялась бы до тех пор, пока устройство не запуститься нормально, то есть в статусе будет - Driver is running. И с небольшими паузами после каждого рестарта. Лишний рестарт приведёт к той же ошибке. Вот всё, что я смог: Файл батника devcon64 status "@USB\VID_0079*PID_0007\5&326C0CBC&0&10"|findstr /C:"Device has a problem: 10" if not errorlevel 1 ( devcon64 restart "@USB\VID_0079*PID_0007\5&326C0CBC&0&10" ) Как бы сюда вставить цикл for или goto, что бы устройство пере запускалось пока не запустится нормально + небольшие паузы после каждого рестарта ? Обновление драйверов не предлагать. Устройство устаревшее, и чего я только не перепробовал, и не только я - всё бесполезно. Буду очень признателен за любую помощь. Заранее благодарю за ответ. |
может учитывать запуск устройства по его функциональности...
например у меня глючит в одном месте сетевуха.... исправлено костылем: Код:
ping 192.168.1.2 -n 10 -l 1 |find "TTL" && goto c1 |
Проблему решил.
:loop devcon_x64 status "@USB\VID_0079*PID_0007\5&326C0CBC&0&10"|findstr /C:"Device has a problem: 10" if not errorlevel 1 ( devcon_x64 restart "@USB\VID_0079*PID_0007\5&326C0CBC&0&10" timeout /t 1 /nobreak goto loop ) else ( start C:\RAB\MSGPULTRUN.vbs ) |
Время: 23:03. |
Время: 23:03.
© OSzone.net 2001-