批处理文件循环中的算术
Arithmetic in batch file loop
我正在批处理文件中写一个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 20 30 ...),但它总是在 20 处停止。在命令提示符的输出中会显示:
10
20
20
...
20
20
我该如何编写才能使整个循环加十?
你很接近,但你错过了在一个地方使用延迟扩展。
将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!
)
如果您需要循环中的算术学术练习,请按照@JosefZ 的说明进行操作。如果您想用更少的代码获得相同的结果,您可以这样做。
for /L %%t IN (20,10,110) DO echo %%t
我正在批处理文件中写一个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 20 30 ...),但它总是在 20 处停止。在命令提示符的输出中会显示:
10
20
20
...
20
20
我该如何编写才能使整个循环加十?
你很接近,但你错过了在一个地方使用延迟扩展。
将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!
)
如果您需要循环中的算术学术练习,请按照@JosefZ 的说明进行操作。如果您想用更少的代码获得相同的结果,您可以这样做。
for /L %%t IN (20,10,110) DO echo %%t