Показать полную графическую версию : [решено] как извлечь все значения определенного ключа реестра из определенной ветки
Всем привет. Помогите создать BAT- фаил (или CMD). Задача такая: есть ветка реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall . В ее разделах храниться информация о установленных программах. В апплете appwiz.cpl отображается параметр ключа DisplayName.
Так вот, хочется из вышеуказанной ветки реестра извлечь в блокнот все значения параметра DisplayName.
El Sanchez
26-12-2011, 17:35
baza450,
@Echo Off
Del /F /Q "%~dp0_Uninstall.log" 2>nul
For /F "Tokens=*" %%A In ('Reg Query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" /s^|Find /i "HKEY_"') Do (
For /F "Tokens=2*" %%B In ('Reg Query "%%A" /v DisplayName 2^>nul^|Find /i "REG_SZ"') Do Echo:%%C>>"%~dp0_Uninstall.log"
)
Notepad "%~dp0_Uninstall.log"
Спасибо) только увидел.... сейчас попробую...
жесть) работает! Только русские шрифты корявенько отображаются, но это не упирается)
я тут немного добавил....это для х64 систем
@Echo Off
Del /F /Q "%~dp0_Uninstall.log" 2>nul
For /F "Tokens=*" %%A In ('Reg Query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" /s^|Find /i "HKEY_"') Do (
For /F "Tokens=2*" %%B In ('Reg Query "%%A" /v DisplayName 2^>nul^|Find /i "REG_SZ"') Do Echo:%%C>>"%~dp0_Uninstall.log"
)
Notepad "%~dp0_Uninstall.log"
Del /F /Q "%~dp0_Uninstall.log" 2>nul
For /F "Tokens=*" %%A In ('Reg Query "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall" /s^|Find /i "HKEY_"') Do (
For /F "Tokens=2*" %%B In ('Reg Query "%%A" /v DisplayName 2^>nul^|Find /i "REG_SZ"') Do Echo:%%C>>"%~dp0_Uninstall.log"
)
Notepad "%~dp0_Uninstall.log"
Вроде работает, вот только после завершения log сам открывается. Как сделать чтобы не открывался сам и сохранялся в нужную папку?
Заранее извиняюсь за "не грамотность" ... только недавно начал скриптами интересоваться...
кстати, тоже самое по сети возможно? к примеру, чтобы собрать такую инфу по всем компам сети?
El Sanchez
26-12-2011, 21:37
Только русские шрифты корявенько отображаются »
baza450, мильпардон, после @Echo Off следующей строкой допишите CHCP 1251 1>nul, в самом конце CHCP 866 1>nul
вот только после завершения log сам открывается »
baza450, дык, по заданию требовалось в Блокнот все передать. Если не надо, то строку Notepad "%~dp0_Uninstall.log" удалите.
Как сделать чтобы не открывался сам и сохранялся в нужную папку? »
baza450, в примере сохраняется рядом с батником в файл _Uninstall.log. Если надо в другое место, то вместо Echo:%%C>>"%~dp0_Uninstall.log" пишете, к примеру, Echo:%%C>>"C:\Temp\blablabla.log"
кстати, тоже самое по сети возможно? к примеру, чтобы собрать такую инфу по всем компам сети? »
baza450, читайте синтаксис Reg Query /?
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.