批处理文件循环中的算术

时间:2015-10-16 00:18:07

标签: batch-file math for-loop dos

我在批处理文件中编写for循环,这是为每次迭代对变量进行算术运算。循环看起来像这样:

@echo off
setlocal enabledelayedexpansion
SET d=10
echo !d!

for /L %%t IN (0,1,9) DO (
    SET /A d = %d% + 10
    echo !d!
)

算法仅适用于第一次迭代。 'd'是从10开始,每次加10(10 20 30 ...)但它总是停在20.在命令提示符的输出中它将显示:

10
20
20
...
20
20

我怎么写这个,所以它会在整个循环中加10?

2 个答案:

答案 0 :(得分:3)

你很接近,但你错过了在一个地方使用延迟扩张。

SET /A d = %d% + 10更改为SET /A d = !d! + 10

@echo off
setlocal enabledelayedexpansion
SET d=10
echo !d!

for /L %%t IN (0,1,9) DO (
    SET /A d = !d! + 10
    echo !d!
)

答案 1 :(得分:1)

如同@JosefZ所说,如果你需要在一个循环中进行算术的学术练习。如果你想用更少的代码得到相同的结果,你可以做到这一点。

for /L %%t IN (20,10,110) DO echo %%t