我在批处理文件中有一个 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%)
)
这不起作用,因为它不计算,而是说
这次没想到
我也尝试过(%%n+%%cycles),但它不起作用。接下来我可以尝试什么?
这根本就失败了,因为您在 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!
)