数学在FOR循环中回声

时间:2012-05-15 12:25:31

标签: math for-loop batch-file echo

我在批处理文件中有一个FOR循环,其中我在echo语句中打印计数器值: 示例代码如下:

SET cycles= (%%n+1) ****here n is a variable of value 1

for /l %%n in (1,1,%iterations%) do (
echo This is Iteration no: (%%n+%cycles%)
)

这不起作用,因为它不计算,而是说

For was not expected this time.

我也试过(%% n + %% cycles)但它不起作用。

你能帮忙吗?

1 个答案:

答案 0 :(得分:2)

这很简单,因为你在echo语句中使用括号!

你必须逃避它们,因为结束括号关闭FOR循环 当您使用百分比扩展cycle变量时,您获得的同样问题更好地使用延迟扩展,因为内容将不再被解析。

setlocal EnableDelayedExpansion
SET cycles= (%%n+1) ****here n is a variable of value 1
set iterations=5

for /l %%n in (1,1,%iterations%) do (
    echo This is Iteration no: (%%n+!cycles!^)
)

编辑计算版本

setlocal EnableDelayedExpansion
SET cycles= (%%n+1)
set iterations=5

set "cyclesEscape=!cycles:)=^)!"
for /l %%n in (1,1,%iterations%) do (
    set /a result=%cyclesEscape%
    echo This is Iteration no: %%n Formula !cycles!=!result!
)