亞索日前需要寫ㄧ個迴圈批次,發現在For迴圈中變數會無法調用的現象,查詢後得知要調用多重變數需要在批次中多加一條參數。

注意事項

  • 撰寫為批次檔時,請使用 %%a,而在命令列執行時要改用 %a。
  • 變數有大小寫的區分,%%i 不同於 %%I。
  • 變數會有取值異常。

 

ㄧ般寫法

for %%i in (*) do (
     echo %%i      
    Command %%i
)

寫成ㄧ條

for %%i in (*) DO echo %%i & [Command 2]

 

多重變數應用

SETLOCAL ENABLEDELAYEDEXPANSION
FOR /F "tokens=1" %%a IN (D:\folders.txt) DO (
     REM (格式不可錯誤,SET前空ㄧ格TAB)
     SET strRBFolder=%%a
     SET strSPath=\\[PATH]\!strRBFolder!
     SET strDPath=\\[PATH]\!strRBFolder!
     ECHO !strDPath!
     ECHO !strSPath!
)
GOTO END

:END
Pause