Войти

Показать полную графическую версию : Присвоение значения переменной


starav
30-05-2013, 07:59
Доброго дня.
Подскажите, что не так.
Пытаюсь переменной 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\

Georgio
30-05-2013, 09:23
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

То, что можно заменять для других подобных задач, выделено красным цветом.




© OSzone.net 2001-2012