2013-08-05 43 views
0

嘗試編輯註冊表查詢批處理文件以設置註冊表項的路徑。 嘗試運行批處理文件時,我正在返回此錯誤。批處理 - B)此時意外

如果我手動輸入片段到命令提示符中,它將完美地讀取和設置路徑。

B)是意外在這個時候

@For/F 「令牌= 2 *跳過= 2」 B)

SETLOCAL ENABLEEXTENSIONS 

:v64bita2 
@For /F "Tokens=2* skip=2" %A In ('REG QUERY "HKLM\SOFTWARE\Wow6432Node\Bohemia Interactive Studio\ArmA 2" /v "MAIN"') Do (set ARMA2PATH=%B) 
IF NOT DEFINED ARMA2PATH (GOTO v32bita2) ELSE (GOTO v64a2oa) 

:v32bita2 
@For /F "Tokens=2* skip=2" %C In ('REG QUERY "HKLM\SOFTWARE\Bohemia Interactive Studio\ArmA 2" /v "MAIN"') Do (set ARMA2PATH=%D) 
IF NOT DEFINED ARMA2PATH (GOTO uaca2) ELSE (GOTO v64a2oa) 

:uaca2 
@FOR /F "tokens=2* delims= " %I IN ('REG QUERY "HKLM\SOFTWARE\Wow6432Node\Bohemia Interactive Studio\ArmA 2" /v "MAIN"') DO (SET ARMA2PATH=%J) 
IF NOT DEFINED ARMA2PATH (GOTO stda2) ELSE (GOTO v64a2oa) 

:stda2 
@FOR /F "tokens=2* delims= " %K IN ('REG QUERY "HKLM\SOFTWARE\Bohemia Interactive Studio\ArmA 2" /v "MAIN"') DO (SET ARMA2PATH=%L) 
IF NOT DEFINED ARMA2PATH (GOTO ENDfailA2) ELSE (GOTO v64a2oa) 

:v64a2oa 
For /F "Tokens=2* skip=2" %E In ('REG QUERY "HKLM\SOFTWARE\Wow6432Node\Bohemia Interactive Studio\ArmA 2 OA" /v "MAIN"') Do (set ARMA2OAPATH=%F) 
IF NOT DEFINED ARMA2OAPATH (GOTO v32a2oa) ELSE (GOTO RUN) 

:v32a2oa 
For /F "Tokens=2* skip=2" %G In ('REG QUERY "HKLM\SOFTWARE\Bohemia Interactive Studio\ArmA 2 OA" /v "MAIN"') Do set (ARMA2OAPATH=%H) 
IF NOT DEFINED ARMA2OAPATH (GOTO uaca2oa) ELSE (GOTO RUN) 

:uaca2oa 
@FOR /F "tokens=2* delims= " %M IN ('REG QUERY "HKLM\SOFTWARE\Wow6432Node\Bohemia Interactive Studio\ArmA 2 OA" /v "MAIN"') DO (SET ARMA2OAPATH=%N) 
IF NOT DEFINED ARMA2OAPATH (GOTO stda2oa) ELSE (GOTO RUN) 

:stda2oa 
@FOR /F "tokens=2* delims= " %O IN ('REG QUERY "HKLM\SOFTWARE\Bohemia Interactive Studio\ArmA 2 OA" /v "MAIN"') DO (SET ARMA2OAPATH=%P) 
IF NOT DEFINED ARMA2OAPATH (GOTO ENDfailA2OA) ELSE (GOTO RUN) 

ENDLOCAL 

:run 

title CMG - Mod Downloader 

echo . 
echo Downloading Mods Now 
echo . 

:ENDfailA2 
echo ArmA 2 Not Installed 
pause 

:ENDfailA2OA 
echo ArmA 2 OA Not Installed 
pause 

回答

1

在批處理文件,你將有你的%翻番。 例如你的第一行:

@For /F "Tokens=2* skip=2" %%A In ('REG QUERY "HKLM\SOFTWARE\Wow6432Node\Bohemia Interactive Studio\ArmA 2" /v "MAIN"') Do (set ARMA2PATH=%%B) 

此外,您可以設置第一行

@echo off 

,那麼你就不必把一個@每行

+0

啊,一個簡單的俯瞰。 謝謝你的幫助(內存刷新):) –