我有下面的代码,尝试在if-else块中重新设置变量“ name”:
@echo off
set name=kk
echo %name%
if "%name%"=="jj" (
echo case1
) else (
echo case2
set name=ll
echo name=%name%
)
在win10的cmd下,输出:
aa
kk
case2
name=kk
这很奇怪,我希望最后一个回显能够打印出来:
name=ll
似乎“设置名称= ll”无效。因此,您能否帮助解释为什么它没有按我预期的那样工作以及如何解决?
答案 0 :(得分:3)
您需要一个delayed expansion
@echo off
setlocal enableDelayedExpansion
set name=kk
echo %name%
if "%name%"=="jj" (
echo case1
) else (
echo case2
set name=ll
echo name=!name!
)