Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Включение/отключение устройств одним .bat файлом

Ответить
Настройки темы
CMD/BAT - [решено] Включение/отключение устройств одним .bat файлом

Новый участник


Сообщения: 3
Благодарности: 0

Профиль | Отправить PM | Цитировать


Помогите с батником который будет отключать устройство если оно включено и включать если оно выключено.
Знаю, что нужно использовать devcon, findstr, if и goto да с if не дружу.

Вот состояния устройства

C:\>devcon_x64.exe disable "HID\VID_045E&PID_00F9&REV_0002&MI_01&Col02"
HID\VID_045E&PID_00F9&MI_01&COL02\7&18BF0AD&0&0001 : Disabled
1 device(s) disabled.

C:\>devcon_x64.exe status "HID\VID_045E&PID_00F9&REV_0002&MI_01&Col02"
HID\VID_045E&PID_00F9&MI_01&COL02\7&18BF0AD&0&0001
Name: HID- Device is disabled.
1 matching device(s) found.

C:\>devcon_x64.exe enable "HID\VID_045E&PID_00F9&REV_0002&MI_01&Col02"
HID\VID_045E&PID_00F9&MI_01&COL02\7&18BF0AD&0&0001 : Enabled
1 device(s) are enabled.

C:\>devcon_x64.exe status "HID\VID_045E&PID_00F9&REV_0002&MI_01&Col02"
HID\VID_045E&PID_00F9&MI_01&COL02\7&18BF0AD&0&0001
Name: HID- Driver is running.
1 matching device(s) found.

Отправлено: 19:15, 25-10-2013

 

Пользователь


Сообщения: 70
Благодарности: 19

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
devcon_x64.exe status "HID\VID_045E&PID_00F9&REV_0002&MI_01&Col02"|findstr /C:"disabled"
if not errorlevel 1 (
  devcon_x64.exe enable "HID\VID_045E&PID_00F9&REV_0002&MI_01&Col02"
) else devcon_x64.exe disable "HID\VID_045E&PID_00F9&REV_0002&MI_01&Col02"
Вот в таком разрезе.

-------
Разумный человек приспосабливается к миру, неразумный пытается приспособить мир к себе. Поэтому прогресс делают люди неразумные. (Дж. Б. Шоу)

Это сообщение посчитали полезным следующие участники:

Отправлено: 23:37, 26-10-2013 | #2



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

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 3
Благодарности: 0

Профиль | Отправить PM | Цитировать


Спасибо, работает.
Только нужно было devcon закинуть в system32.

Отправлено: 02:02, 27-10-2013 | #3


Пользователь


Сообщения: 70
Благодарности: 19

Профиль | Отправить PM | Цитировать


Цитата BuSHmaker:
Только нужно было devcon закинуть в system32 »
Этого я не понял. Что значит "закинуть" и зачем ? Судя по твоим командам, он запускался просто из корня диска C: и работал, или я что-то не так понял ?

-------
Разумный человек приспосабливается к миру, неразумный пытается приспособить мир к себе. Поэтому прогресс делают люди неразумные. (Дж. Б. Шоу)


Отправлено: 11:50, 27-10-2013 | #4


Новый участник


Сообщения: 3
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата Гуллипут:
Этого я не понял. Что значит "закинуть" и зачем ? Судя по твоим командам, он запускался просто из корня диска C: и работал, или я что-то не так понял ? »
Запускался с корня он только после смены рабочего каталога на корень C:. Твой батник, без смены каталога, работал бы только при запуске с корня C:. А теперь он работает с любого места.
Я редко юзаю девкон, но уже больше года хотел её переместить какой-нибудь PATH.

Отправлено: 16:31, 28-10-2013 | #5


Пользователь


Сообщения: 70
Благодарности: 19

Профиль | Отправить PM | Цитировать


То есть devcon находился в корне ? Тогда понятно.

Отправлено: 00:25, 29-10-2013 | #6


Новый участник


Сообщения: 5
Благодарности: 0

Профиль | Отправить PM | Цитировать


Моя задача немного сложнее. При загрузке системы, устройство чаще всего не запускается.
Вот, что выдаёт:

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. Знаю, что нужно использовать if,findstr, for, но как это реализовать - не знаю. Обновление драйверов не предлагать. Устройство устаревшее, и чего я только не перепробовал, и не только я - всё бесполезно.

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

Отправлено: 18:15, 02-01-2017 | #7


Ветеран


Сообщения: 1274
Благодарности: 564

Профиль | Отправить PM | Цитировать


ivantresh,
допустим так:
Код: Выделить весь код
@echo off
:st
devcon64 status "@USB\VID_0079*PID_0007\5&326C0CBC&0&10"|find /i "Driver is running" && (echo Все в порядке& goto out) || (echo Есть проблема& goto st)
:out
exit/b
но вряд-ли, перезапускать надо что-то по-глобальнее чтобы проблемный драйвер запустился и скорее после метки :st, нужна строка запуска чего-то еще.

Отправлено: 21:47, 02-01-2017 | #8


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата alpap:
& goto out »
и сама метка тут, в общем-то лишние.

Отправлено: 22:49, 02-01-2017 | #9


Новый участник


Сообщения: 5
Благодарности: 0

Профиль | Отправить PM | Цитировать


Вот, что сделал я:

Файл батника

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, что бы устройство пере запускалось пока не запустится нормально + небольшие паузы после каждого рестарта ? Лишний рестарт может привести к той же ошибке. Нужно, чтобы устройство пере запускалось (команда devcon64 restart) до тех пор, пока нормально не запустится. То есть команда devcon64 status выдаст строку - Driver is running. Обычно бывает достаточно одного перезапуска, но иногда 2-3, очень редко 4. А иногда перезапуск вообще не нужен.

Последний раз редактировалось ivantresh, 03-01-2017 в 00:11. Причина: Дополнение


Отправлено: 23:54, 02-01-2017 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Включение/отключение устройств одним .bat файлом

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Разное - помогите с bat файлом vasmixser Программирование и базы данных 6 25-10-2013 12:05
CMD/BAT - Перезапустить службу bat файлом ruslanstep1 Программирование и базы данных 8 26-06-2013 13:03
Разное - странности с bat-файлом бУРов Microsoft Windows 7 0 05-03-2012 16:44
Любой язык - Отключение устройства одним кликом VokaMut Скриптовые языки администрирования Windows 4 20-12-2011 12:24
CMD/BAT - [решено] Отключение/включение служб с помощью bat/vbs возможно ли ? dark-------13 Скриптовые языки администрирования Windows 1 05-05-2011 09:54




 
Переход