|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] .bat: удаление значения реестра после отбора |
|
|
CMD/BAT - [решено] .bat: удаление значения реестра после отбора
|
Новый участник Сообщения: 14 |
Профиль | Отправить PM | Цитировать Добрый день!
Весь день в гугле, но поскольку сам далек от программирования, то ничего толком не получается. Помогите, пожалуйста, решить непосильную задачу: Есть такой раздел в реестре: HKLM\System\CurrentControlSet\Enum\USB, куда сохраняются любые устройства при присоединении к ПК через USB. В данном разделе при присоединении устройства создаются подразделы (назовем их для удобства подразделы 1), содержащие в названии Vid и Pid устройств, например: HKLM\System\CurrentControlSet\Enum\USB\Vid_0930&Pid_6544 HKLM\System\CurrentControlSet\Enum\USB\Vid_03f0&Pid_3b17 и т.д. В свою очередь, в этих подразделах (1) создаются еще подразделы (2), содержащие в названии SN устройств, например: HKLM\System\CurrentControlSet\Enum\USB\Vid_0930&Pid_6544\0765432567654 HKLM\System\CurrentControlSet\Enum\USB\Vid_0930&Pid_6544\2131231233231 и т.д. В подразделах (2) есть параметр типа REG_SZ, который называется Service. Он содержит информацию о том, что за устройство было подключено. Например, если он равен USBSTOR, то была подключена флешка. =================================== Теперь сама задача, которую я устал решать вручную: Нужно удалить с ПК все флешки. Необходимо, чтобы умный bat-файл проверял каталог HKLM\System\CurrentControlSet\Enum\USB на содержимое файлов Service (которые лежат в подразделах (2), причем имена подразделов (1) и (2) у всех устройств разные), а потом удалял нужный подраздел (1), например: Флешка была HKLM\System\CurrentControlSet\Enum\USB\Vid_0930&Pid_6544\0765432567654 (параметр Service=USBSTOR), значит нужно удалить подраздел HKLM\System\CurrentControlSet\Enum\USB\Vid_0930&Pid_6544. Проблема в том, что нельзя просто удалить папку USB, т.к. в ней, помимо флешек, еще много всего нужного - USB-хабы, принтеры, мышки, USB-порты виртуальных машин и т.д. Я так понимаю, что нужен предварительный поиск и сохранение пути для удаления в какую-то переменную, причем это должно быть в цикле, но сколько с интернета всего скачал - ничего не получается собрать вместе. Заранее огромное спасибо, господа скриптеры . |
|
Отправлено: 11:36, 16-08-2011 |
Новый участник Сообщения: 14
|
Профиль | Отправить PM | Цитировать Я его целиком скопировал в пустой bat-файл и запустил. Сразу закрывается. Если открыть через cmd, то выдает ошибку про слишком много параметров.
Может дело в версии reg.exe? У меня если смотреть через reg query 3.0, ОС WinXP. |
Отправлено: 13:25, 17-08-2011 | #21 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 1758
|
посмотри reg query /?
Есть ли там параметр /s |
Отправлено: 13:28, 17-08-2011 | #22 |
Старожил Сообщения: 175
|
Профиль | Отправить PM | Цитировать Можно и так:
@echo off set "Section=HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{36FC9E60-C465-11CF-8056-44455340000}" for /f "tokens=*" %%a in ('reg query "%Section%" ^| findstr /c:"HKEY_LOCAL_MACHINE"') do ( reg query "%%a" /s | find "USBSTOR_BULK" && if not "%%a"=="%Section%" echo reg delete "%%a" /f >> USBSTOR_BULK.txt ) |
Последний раз редактировалось SendMessage, 17-08-2011 в 13:34. Причина: подправил скрипт Отправлено: 13:28, 17-08-2011 | #23 |
Новый участник Сообщения: 14
|
Профиль | Отправить PM | Цитировать Второй вариант сработал, огромное вам спасибо!
|
Отправлено: 13:41, 17-08-2011 | #24 |
Ветеран Сообщения: 1758
|
Цитата SendMessage:
|
|
Отправлено: 13:43, 17-08-2011 | #25 |
Старожил Сообщения: 175
|
Профиль | Отправить PM | Цитировать Цитата Foreigner:
Цитата Lightman123:
|
||
Последний раз редактировалось SendMessage, 17-08-2011 в 14:00. Отправлено: 13:54, 17-08-2011 | #26 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Получение значения параметра реестра | IfoR | Скриптовые языки администрирования Windows | 6 | 08-04-2010 12:54 | |
CMD/BAT - [решено] Получение значения параметра реестра | user_123 | Скриптовые языки администрирования Windows | 3 | 05-04-2010 13:10 | |
Разное - Изменение значения реестра через батник | Raver777 | Microsoft Windows 2000/XP | 3 | 22-03-2009 23:46 | |
Разное - Изменить значения реестра из другой ОС | Белтон | Лечение систем от вредоносных программ | 5 | 10-05-2008 17:09 | |
Доступ - Авто экспорт значения ключа из реестра | Billy Bones | Microsoft Windows 2000/XP | 3 | 26-07-2007 11:50 |
|