我在批处理文件中有一个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)但它不起作用。
你能帮忙吗?
答案 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!
)