[问题] [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