【发布时间】:2010-07-07 11:21:16
【问题描述】:
为什么这不起作用?
@echo off
for /l %%i in (0, 1, 100) do (
for /l %%j in (0, 1, 10) do (
set /a curr=%%i*10 + %%j
echo %curr%
)
echo "-----------------------------"
)
这是我从中得到的输出:
1010
1010
1010
1010
1010
1010
1010
1010
1010
1010
1010
"----------------------------"
1010
1010
1010
1010
1010
1010
1010
1010
...
它似乎在执行之前预先计算了数学,所以当它最终执行时,%curr% 已经是 1010。我该如何防止它这样做?我试图得到这样的输出:
0
1
2
3
4
5
6
7
8
9
10
"----------------------------"
11
12
...
提前致谢
Johannes Rössel 的回答(供以后可能会寻找的人):
@echo off
setlocal enabledelayedexpansion enableextensions
for /l %%i in (0, 1, 100) do (
for /l %%j in (0, 1, 10) do (
set /a curr=%%i*10+%%j
echo !curr!
)
echo "-----------------------------"
)
【问题讨论】:
-
k,在我的问题中解决了这个问题(在我的实际批处理文件中,
/a在那里正确)
标签: math batch-file for-loop