有关批处理的小问题

来源:百度知道 编辑:UC知道 时间:2024/06/23 00:14:20
for /l %%a in (5,1,12) do (
set /a r=%%a%%2
echo %r%
)
这条语句为什么执行后的结果不是我所要的?我要一个个显示。可是结果却是只显示一个。
高手解决下,把原理告诉我。最好能给一个实例。

@echo off
setlocal enabledelayedexpansion
for /l %%a in (5,1,12) do (
set /a r=%%a%%2
echo !r!
)
pause

由于在for里面多次给同一个变量r进行赋值,故而必须启用变量延迟。