在循环中变量自增后,因为批处理运行命令的机制,直到循环结束该变量值才能正确打印显示出来。
例子1:
@echo off
set /a a=2
for /l %%c in (1 1 10) do (
set /a a+=1
echo %a%
)
echo %a%
pause
例子2
@echo off
setlocal enabledelayedexpansion
set /a a=2
for /l %%c in (1 1 10) do (
set /a a+=1
echo !a!
)
echo %a%
例子1:
@echo off
set /a a=2
for /l %%c in (1 1 10) do (
set /a a+=1
echo %a%
)
echo %a%
pause
结果:循环中一直是2,结束后是12
例子2
@echo off
setlocal enabledelayedexpansion
set /a a=2
for /l %%c in (1 1 10) do (
set /a a+=1
echo !a!
)
echo %a%
pause
结果:符合预期