0

我在批处理文件中有一个 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) 但它不起作用。

你能帮忙吗?

4

1 回答 1

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!
)
于 2012-05-15T14:15:56.703 回答