用批處理讀取特定登錄檔項的路徑值

2022-01-29 20:35:19 字數 1720 閱讀 5945

用批處理命令查詢登錄檔項的命令為

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%

"

批處理查詢登錄檔專案錄下匹配的子項

使用說明 1.請將下面的檔案儲存成 批處理查詢登錄檔專案錄下匹配的子項.bat 2.直接在windows下雙擊執行 批處理查詢登錄檔專案錄下匹配的子項 echo off set regpath hkey current user software microsoft windows currentv...

INNO 讀取可變登錄檔路徑的問題

inno 讀取可變登錄檔路徑的問題 問題 我想自動為 firefox 安裝上 real 的 mozilla 外掛程式 但是它的路徑存放在 hkey current user software mozilla mozilla firefox 1.5 zh cn main install directo...

語言 批處理 刪除登錄檔中的項

reg delete keyname v valuename ve va f keyname machine fullkey machine 遠端機器名 忽略當前機器的預設值。遠端機器上只有 hklm 和 hku。fullkey rootkey subkey rootkey hklm hkcu hk...