[問題] [batch]條件式中設定變數

作者: touvictor ( )   2020-08-10 16:39:52
請教各位高手, 小弟要在if條件式中設定參數的值,
在輸入參數值為1的時候, 設定變數a=WAIT並顯示出來,
但一直無法成功顯示WAIT, 而是顯示ECHO 已關閉。
請教以下寫法有何錯誤? 謝謝
已找到解決方法:
@ECHO OFF下一行要加上 setlocal enabledelayedexpansion
ECHO %a% 改為 ECHO !a!
原本失敗的執行結果:
(base) PS C:\temp> ./new1.bat 1
========= Check Arguments: "1"
input=1
ECHO 已關閉。
原程式:
@ECHO OFF
ECHO ========= Check Arguments: "%*"
SET input=%1
ECHO input=%input%
IF "%input%" == "1" (
SET a=WAIT
ECHO %a%
) ELSE (
IF "%input%" == "2" (
ECHO 3
) ELSE ECHO 4
)
EXIT /B 0
修改後:
@ECHO OFF
setlocal enabledelayedexpansion
ECHO ========= Check Arguments: "%*"
SET input=%1
ECHO input=%input%
IF "%input%" == "1" (
SET a=WAIT
ECHO !a!
) ELSE (
IF "%input%" == "2" (
ECHO 3
) ELSE ECHO 4
)
EXIT /B 0

Links booklink

Contact Us: admin [ a t ] ucptt.com