Как прочитать значение строки реестра из командного файла - PullRequest
4 голосов
/ 06 июля 2010

Я хочу прочитать строковое значение реестра из файла bat, а затем передать полученное значение в переменную. Я попробовал следующее:

FOR  %%a in ('REG QUERY HKLM\SOFTWARE\MathWorks\MATLAB\7.10 /v MATLABROOT') DO set MATLAB=%%a
echo %MATLAB% 

но это не работает.

Ответы [ 2 ]

6 голосов
/ 06 июля 2010

Если имя значения (в данном случае baz) не содержит пробелов, вы можете сделать что-то вроде

FOR /F "skip=4 tokens=2,*" %%A IN ('REG.exe query "HKLM\software\foo\bar" /v "baz"') DO set "MATLABROOT=%%B"

Если имя динамическое и известно только во время выполнения, вам придется использовать tokens = * и анализировать %% A, ища «REG_», чтобы вы знали, где начинаются данные ...

2 голосов
/ 06 июля 2010

reg выводит намного больше, чем просто значение, которое вас интересует. Насколько я вижу, предоставление опции skip=2 и tokens=3 для for может работать.

Может потребоваться немного сложнее, хотя, если есть больше места, чем ожидалось.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...