FOR 循环内 echo 中的数学

问题描述 投票:0回答:1

我在批处理文件中有一个 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),但它不起作用。接下来我可以尝试什么?

math for-loop batch-file echo
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!
)
© www.soinside.com 2019 - 2024. All rights reserved.