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

Вы думаете, что было бы легко найти в Google, как установить значение reg для переменной в пакетном файле, но это постоянно отличается, поскольку не работает для моих целей. В настоящее время о PowerShell/VBS не может быть и речи, и я считаю, что это возможно с использованием файла .bat.

Когда я использую эту команду:

REG QUERY HKLM\SOFTWARE\Policies\Microsoft\Windows\Windowsupdate /v WUServer

Выход:

HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Windowsupdate
   WUServer    REG_SZ    http://AAA-WUS-MHQ1234

Я просто хочу:

http://AAA-WUS-MHQ1234

и хранится как переменная, поэтому я могу эхо %WSUSServer%

Я пробовал set, и он просто устанавливает команду, а не вывод, а также я не могу заставить работать токен, разделитель или массив, но, возможно, я неправильно понимаю, как они работают.

Пожалуйста, научите, как использовать set, чтобы сделать сервер переменной.

Большое спасибо!

Обновление: Итак, я пробовал это, но только в строке cmd и получаю %% L не ожидалось ... Я ввел его как одно слово, должно ли оно быть в пакетном файле с отступами? Я бы так не думал, но сейчас пытаюсь:

FOR /F "usebackq tokens=2,* skip=2" %%L IN ( reg query "HKLM\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.1\WinSDKTools" /v InstallationFolder ) DO SET sdkpath=%%M

person TheftAuto    schedule 16.07.2014    source источник
comment
Я пробовал этот код, но не могу заставить его работать (имейте в виду, я пытаюсь просто в командной строке cmd, но я получаю %% L не ожидалось, и это использует код ниже в одной строке   -  person TheftAuto    schedule 17.07.2014
comment
FOR /F usebackq tokens=2,* skip=2 %%L IN ( reg query "HKLM\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.1\WinSDKTools" /v InstallationFolder ) DO SET sdkpath=%%M   -  person TheftAuto    schedule 17.07.2014
comment
Пожалуйста, отредактируйте свой вопрос, включив в него то, что вы пробовали, и добавьте информацию о том, как это не работает, поскольку вы ожидать там вместо того, чтобы хоронить его в беспорядке комментариев? Информация, относящаяся к вашему вопросу, содержится в самом вопросе.   -  person Ken White    schedule 17.07.2014


Ответы (1)


Вам нужно сделать то, что вы на самом деле сказали, и использовать backqtokens (`). (Кроме того, из командной строки вам нужен только один %; в пакетном файле вы должны использовать два (%%.)

FOR /F "usebackq tokens=2,* skip=2" %%L IN (`reg query "HKLM\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.1\WinSDKTools" /v InstallationFolder`) DO SET sdkpath=%%M
person Ken White    schedule 16.07.2014