Присвоение значения переменной
Доброго дня.
Подскажите, что не так.
Пытаюсь переменной SRoot присвоить строку, которая выдается запросом из реестра.
А у меня присваивается сама строка запроса.
Код:
set SRoot=reg QUERY "HKEY_CURRENT_USER\Identities\{DCD2C8FD-BCBF-4EBD-8D4C-9E1960F6EC2E}\Software\Microsoft\Outlook Express\5.0" /v "Store Root"
echo %SRoot%
Заодно, может кто подскажет, как проще присвоить переменной именно значение реестра, т.е. путь к папке, а не то, что выдает результат, где много лишней инфы..
Код:
! REG.EXE VERSION 3.0
HKEY_CURRENT_USER\Identities\{DCD2C8FD-BCBF-4EBD-8D4C-9E1960F6EC2E}\Software\Microsoft\Outlook Express\5.0
Store Root REG_EXPAND_SZ %UserProfile%\Local Settings\Application Data\Identities\{DCD2C8FD-BCBF-4EBD-8D4C-9E1960F6EC2E}\Microsoft\Outlook Express\
|
starav, вот так правильно (и почти универсально):
Код:
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
SET "HKEY=HKEY_CURRENT_USER\Identities\{DCD2C8FD-BCBF-4EBD-8D4C-9E1960F6EC2E}\Software\Microsoft\Outlook Express\5.0"
FOR /F "skip=2 tokens=*" %%I IN ('REG QUERY "%HKEY%" /v "Store Root"') DO (
SET VAR1=%%I
SET VAR2=!VAR1:Store Root=!
)
FOR /F "tokens=1*" %%I IN ("!VAR2!") DO (
SET SRoot=%%J
ECHO !SRoot!
)
PAUSE>nul
То, что можно заменять для других подобных задач, выделено красным цветом.
|
Время: 21:04.
© OSzone.net 2001-