如何从批处理文件中读取注册表字符串值

use*_*508 4 batch-file

我想从bat文件中读取注册表字符串值,然后将readed值分配给变量.我尝试了以下方法:

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

但它不起作用.

And*_*ers 6

如果值的名称(在这种情况下为baz)不包含空格,则可以执行类似的操作

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

如果名称是动态的并且仅在运行时已知,则必须使用tokens =*并解析%% A查找"REG_"以便您知道数据的开始位置...

  • 很奇怪,不是吗.您认为"将注册表值转换为变量"将是批处理文件中最常见的需求之一. (2认同)