Компьютерный форум 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=261516)

starav 30-05-2013 07:59 2159016

Присвоение значения переменной
 
Доброго дня.
Подскажите, что не так.
Пытаюсь переменной 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 2159059

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.

Время: 21:04.
© OSzone.net 2001-