Войти

Показать полную графическую версию : [решено] Значения параметров реестра в переменные.


Lucretius
23-04-2013, 20:42
Необходимо занести в переменные значения параметров реестра:

[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-юши.

Lucretius
23-04-2013, 21:17
Всё, дошло:
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%

sov44
10-03-2015, 16:00
Нужно найти в реестре определённое значение и взять в переменную "корень" куста, где оно найдено.

Например, ищем 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

gora
10-03-2015, 19:56
В переменную должно взяться 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




© OSzone.net 2001-2012