我想將變量設置爲註冊表路徑。 然後查詢註冊表並嘗試與變量匹配。如果兩者相同,則執行。 但由於某種原因,即時得到錯誤,看起來像有一些問題,此命令試圖存儲一個命令到一個變量,並試圖匹配在批處理文件
set var=HKEY_LOCAL_MACHINE\System\x
IF reg query==var
GOTO EXecute
我想將變量設置爲註冊表路徑。 然後查詢註冊表並嘗試與變量匹配。如果兩者相同,則執行。 但由於某種原因,即時得到錯誤,看起來像有一些問題,此命令試圖存儲一個命令到一個變量,並試圖匹配在批處理文件
set var=HKEY_LOCAL_MACHINE\System\x
IF reg query==var
GOTO EXecute
你在做什麼有隻是比較字符串。指揮官應該如何知道reg query
是一個命令(除了事實,它本身不會產生太多有用的東西)。
你需要做的是執行你的程序,捕獲它的輸出然後進行比較。你可以用for /f
命令做到這一點:
for /f %%x in ('reg query ...') do ...
然而,reg
輸出爲人類可讀的,而不是機器可讀的,所以你需要一些工作得到它的權利。基本上,您需要忽略for
語句和標題行中的空行,然後您需要找到您感興趣的實際值。這會變得很難看。
for /f %%a in ('reg query ...') do if "%var%" == "%%a" goto Execute
這是給錯誤%%一個就是在這個時候 – alice7 2009-11-17 17:36:20
的一倍%是一個批處理文件中使用的意外,他們不應該,如果直接輸入一個命令行上一倍。 – brianary 2009-11-17 18:46:19