[BATCH]批处理中enabledelayedexpansion启动变量延迟
一个简单的需求,批量定义变量并运算赋值,再对获取变量计算的结果值
方法:
1.使用SET /A 方式暂存表达式的中间计算结果
2.使用setlocal enabledelayedexpansion 避免解释器在循环体中实时展开变量
3.使用&合并表达式为1行
启用setlocal enabledelayedexpansion。启动变量延迟
@echo on set var4="test" for /l %%i in (1,1,3) do set var%%i=%%i echo %var1% echo %var2% echo %var3% echo %var4% setlocal enabledelayedexpansion for /l %%j in (1,1,3) do ( set /a t= var%%j & echo !t! ) for /l %%j in (1,1,3) do ( set /a t= var%%j echo !t! ) endlocal |
pause
输出
1
2
3
4
关闭enabledelayedexpansion
输出
4
4
4
4
关于setlocal和enabledelayedexpansion
https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-R2-and-2012/cc772046(v=ws.11)?redirectedfrom=MSDN
Recent Comments