Показать полную графическую версию : [решено] .bat: удаление значения реестра после отбора
Lightman123
17-08-2011, 13:25
Я его целиком скопировал в пустой bat-файл и запустил. Сразу закрывается. Если открыть через cmd, то выдает ошибку про слишком много параметров.
Может дело в версии reg.exe?
У меня если смотреть через reg query 3.0, ОС WinXP.
Foreigner
17-08-2011, 13:28
посмотри reg query /?
Есть ли там параметр /s
SendMessage
17-08-2011, 13:28
Можно и так:
@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
)
Только надо проверять имя секции внимательно - у меня другое, например - {36FC9E60-C465-11CF-8056-444553540000}
Lightman123
17-08-2011, 13:41
Второй вариант сработал, огромное вам спасибо!
Foreigner
17-08-2011, 13:43
reg query "%Section%" »
У меня reg query отказался работать с фигурными кавычками в переменной, только напрямую. Экранирование не помогло.
SendMessage
17-08-2011, 13:54
У меня reg query отказался работать с фигурными кавычками в переменной, только напрямую »
У меня работает, вроде. А вот findstr отказался. Почему и пришлось выборку делать более общую.
Второй вариант сработал, огромное вам спасибо! »
Кстати, его лучше использовать и для первой задачи - более правильный скрипт. Не сразу до кондиции его прокрутил.
@echo off
set "Section=HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB"
for /f "tokens=*" %%a in ('reg query "%Section%" ^| findstr /c:"%Section%\\Vid_"') do (
reg query "%%a" /s | find "USBSTOR" && echo reg delete "%%a" /f >> USBSTOR.txt
)
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.