我想從bat文件中讀取註冊表字符串值,然後將相應的值分配給變量。 我試過如下:如何從批處理文件中讀取註冊表字符串值
FOR %%a in ('REG QUERY HKLM\SOFTWARE\MathWorks\MATLAB\7.10 /v MATLABROOT') DO set MATLAB=%%a
echo %MATLAB%
,但它不工作。
我想從bat文件中讀取註冊表字符串值,然後將相應的值分配給變量。 我試過如下:如何從批處理文件中讀取註冊表字符串值
FOR %%a in ('REG QUERY HKLM\SOFTWARE\MathWorks\MATLAB\7.10 /v MATLABROOT') DO set MATLAB=%%a
echo %MATLAB%
,但它不工作。
如果該值(在這種情況下巴茲)的名稱不包含空格,你可以這樣做
FOR /F "skip=4 tokens=2,*" %%A IN ('REG.exe query "HKLM\software\foo\bar" /v "baz"') DO set "MATLABROOT=%%B"
如果名稱是動態的,只有在運行時知道,你將不得不使用令牌= *並解析%% A查找「REG_」,以便知道數據的起始位置......
很確定,如果有路徑中的空間。 – 2014-03-12 12:40:58
@CraigRinger:2,*表示%% B變成行的其餘部分。更大的問題是skip = 4之類的東西,因爲它取決於操作系統版本等。不管你做什麼,在批處理文件中執行這種操作都會變得很糟糕...... – Anders 2014-03-13 15:25:45
奇怪,是不是。你會認爲「獲取註冊表值到變量中」將是批處理文件中最常見的需求之一。 – 2014-03-14 00:06:13
reg
打印出的不僅僅是非常值你感興趣的方式了。據我所看到的,給予skip=2
和tokens=3
選項for
可能會奏效。
但是,如果有更多的空間比預期更多,可能需要比這更詳細一點。
可能的重複[如何從批處理腳本中獲取註冊表項的值?](http:/ /stackoverflow.com/questions/445167/how-can-i-get-the-value-of-a-registry-key-from-within-a-batch-script) – Pondlife 2012-10-24 18:51:47