作者touvictor ( )
看板Programming
标题[问题] [batch]条件式中设定变数
时间Mon Aug 10 16:39:52 2020
请教各位高手, 小弟要在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
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 61.221.145.1 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Programming/M.1597048794.A.982.html
※ 编辑: touvictor (61.221.145.1 台湾), 08/10/2020 16:53:00
※ 编辑: touvictor (61.221.145.1 台湾), 08/10/2020 17:40:33
※ 编辑: touvictor (61.221.145.1 台湾), 08/10/2020 17:43:18