Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Значения параметров реестра в переменные. (http://forum.oszone.net/showthread.php?t=259267)

Lucretius 23-04-2013 20:42 2138502

Значения параметров реестра в переменные.
 
Необходимо занести в переменные значения параметров реестра:
Код:

[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 2138530

Всё, дошло:
Код:

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 2480982

Нужно найти в реестре определённое значение и взять в переменную "корень" куста, где оно найдено.

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

Цитата:

Цитата 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.

Время: 19:49.
© OSzone.net 2001-