用批處理讀取特定注冊表項的路徑值


用批處理命令查詢注冊表項的命令為

REG QUERY ...

具體的使用信息在命令行窗口中輸入

REG QUERY /?

在這里我們需要查詢一個具體的key-value,則使用下面的命令

REG  QUERY [REG PATH] /v [KEY]

舉個例子

reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\110\Tools\ClientSetup" /v "Path"

顯示結果如下:

D:\Work\學習文檔\批處理>reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\110\Tools\ClientSetup" /v "Path"

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\110\Tools\ClientSetup

    Path    REG_SZ    C:\Program Files\Microsoft SQL Server\110\Tools\Binn\

我們要把紅色的部分取出來,注意reg批處理命令這里的輸出結果是兩行,我們要取出來的是第二行的后半部分。我們用for 將這部分取出來。先來說一下for的基本結構:

for /f  "tokens=1,2 delims=:" %%a  in(‘REG QUERY [REG_PATH]') 
do
(
    set "value1=%%a"
    set "value2=%%b" 
)

for循環對REG QUERY取出的兩行分別處理,取出的每行值保存在變量%%a中,但是這里使用了tokens 和delims,delims指定了分割字符串的字符,這里也就是用":"將每行字符串進行分割,tokens=1,2 表示取出分割之后的前兩列,第一列保存在%%a中,第二列保存在%%b中(如果有第三列則保存在%%c中)。。。繼續看上面的例子。  

echo off
for /f  "tokens=1,2 delims=:" %%a  in('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\110\Tools\ClientSetup" /v "Path"') 
do
(   
    set "value1=%%a"
    echo %value1%
    set "value2=%%b" 
    echo %value2%
)

 最終的變量值

value1 = Path REG_SZ C

value2 = \Program Files\Microsoft SQL Server\110\Tools\Binn\

將value1的倒數第一個字符(也就是盤符c)和value2連接起來,中間用 :

set "value2=%value1:~-1%:%value2%"

 

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM