Значения параметров реестра в переменные.
Необходимо занести в переменные значения параметров реестра:
Код:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{*-*-*-*-*}_is1]
"InstallLocation"="C:\\Program Files\\Proga\\"
"UninstallString"="\"C:\\Program Files\\Prog\\unins.exe\""
"QuietUninstallString"="\"C:\\Program Files\\Prog\\unins.exe\" /SILENT"
"DisplayVersion"="Proga 1.2.3"
Так работает на ХP:
Код:
For /F "Tokens=3 Delims= " %%a In ('Reg Query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{*-*-*-*-*}_is1" /V InstallLocation') Do Set directory=%%a
Echo %directory%
For /F "Tokens=3 Delims= " %%a In ('Reg Query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{*-*-*-*-*}_is1" /V UninstallString') Do Set uninstall=%%~a
Echo %uninstall%
На Семёрке разделитель "TAB" ,к сожалению не срабатывает. Подскажите универсальный вариант для 7 и XP-юши.
|
Всё, дошло:
Код:
For /F "Tokens=2,*" %%i In ('Reg Query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{*-*-*-*-*}_is1" /V InstallLocation') Do Set directory=%%j
Echo %directory%
For /F "Tokens=2,*" %%i In ('Reg Query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{*-*-*-*-*}_is1" /V UninstallString') Do Set uninstall=%%~j
Echo %uninstall%
|
Нужно найти в реестре определённое значение и взять в переменную "корень" куста, где оно найдено.
Например, ищем 11a1ab.msp в кусте HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Patches
Это значение находится в
Код:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Patches\B0DA4C1D97CC2D14D8A675E1B70356C8]
"LocalPackage"="C:\\Windows\\Installer\\11a1ab.msp"
В переменную должно взяться B0DA4C1D97CC2D14D8A675E1B70356C8
|
Цитата:
Цитата sov44
В переменную должно взяться B0DA4C1D97CC2D14D8A675E1B70356C8 »
|
Код:
@Echo Off
Set sw=HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Patches
Set ptrn=ab3ee0.msp
For /F "delims=" %%i In ('Reg Query "%sw%" 2^>nul') Do (
For /F "delims=" %%a In ('Reg Query "%%i" /v "LocalPackage" 2^>nul ^| findstr "%ptrn%"') Do Set var=%%~ni
)
Echo var=%var%
Pause
|
Время: 19:49.
© OSzone.net 2001-