我想从批处理文件中读取注册表字符串值,然后将读取的值分配给变量。 我尝试了以下代码:
FOR %%a in ('REG QUERY HKLM\SOFTWARE\MathWorks\MATLAB\7.10 /v MATLABROOT') DO set MATLAB=%%a
echo %MATLAB%
但它不能正常工作。
我想从批处理文件中读取注册表字符串值,然后将读取的值分配给变量。 我尝试了以下代码:
FOR %%a in ('REG QUERY HKLM\SOFTWARE\MathWorks\MATLAB\7.10 /v MATLABROOT') DO set MATLAB=%%a
echo %MATLAB%
但它不能正常工作。
如果值的名称(在本例中为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_”以便知道数据从何处开始...
reg
打印出的不仅仅是您感兴趣的值。据我所见,将 skip=2
和 tokens=3
选项传递给 for
可能会起作用。
如果有比预期更多的空格,则可能需要更加详细的处理。