Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Devcon. Перезапуск устройства с использованием IF и FOR (http://forum.oszone.net/showthread.php?t=322253)

ivantresh 02-01-2017 19:02 2700219

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

Обновление драйверов не предлагать. Устройство устаревшее, и чего я только не перепробовал, и не только я - всё бесполезно.

Буду очень признателен за любую помощь. Заранее благодарю за ответ.

Опиум 03-01-2017 17:50 2700413

может учитывать запуск устройства по его функциональности...
например у меня глючит в одном месте сетевуха.... исправлено костылем:

Код:

ping 192.168.1.2 -n 10 -l 1 |find "TTL" && goto c1

devcon.exe disable "PCI\VEN_8086&DEV_108C&SUBSYS_108C15D9&REV_03"  >>%~dpn0_log.txt
devcon.exe enable  "PCI\VEN_8086&DEV_108C&SUBSYS_108C15D9&REV_03"  >>%~dpn0_log.txt

:c1


ivantresh 04-01-2017 09:32 2700565

Проблему решил.

: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-