gpt4 book ai didi

batch-file - Batch for 循环是否可以增加步长值?

转载 作者:行者123 更新时间:2023-12-03 16:28:28 28 4
gpt4 key购买 nike

这可能简短而有趣,但我只是在检查。

批处理 for 命令可以有一个递增的步长值吗?

@echo off
SetLocal EnableDelayedExpansion
set xyz=200
for /l %%n in (100,%xyz%,26000) do (
set /a value_=!value_!+1
set x=%%n
set value_!value_!=!x!
echo value_!value_!=!x!
)
echo.
echo variable 'value_5' = !value_5!
echo.
pause

运行上面的代码几乎可以满足我的需要(针对序列中每个更高的变量生成更高的值)。唯一的区别是我需要在每个循环中将步长值增加两倍。 +200 第一循环,+400 第二循环,+800 第三循环等

目前,每个循环 200 个输出是:

value_1=100
value_2=300
value_3=500
value_4=700
value_5=900
value_6=1100
value_7=1300
...

...
variable 'value_5' = 900

每次递增 200 (xyz)。我真的需要在以前的值上每次都将步长增量加倍。在 for 语句内部或外部添加计算不会更改输出。

所以输出将是:

value_1=100
value_2=300
value_3=700
value_4=1500
value_5=3100
value_6=6300
value_7=12700
value_8=25500

variable 'value_5' = 3100

我希望这是有道理的。如果不行,有没有其他快速的方法,或者我要有很多

set value_1=100
set value_2=300
...

...
set value_98=xxx
set value_99=xxx

行占用了很多空间。那我就必须计算每一行。

最佳答案

@echo off
SetLocal EnableDelayedExpansion
set xyz=200
SET minval=100
SET maxval=26000
SET /a numvals=2+((maxval-minval) / xyz)
SET num
for /l %%n in (1,1,%numvals%) do (
IF !minval! LEQ %MAXVAL% (
set /a value_%%n=!minval!
SET /a minval+=xyz
SET /a xyz=2*!xyz!
)
)
echo.
echo variable 'value_5' = !value_5!
echo.
SET value_
pause

关于batch-file - Batch for 循环是否可以增加步长值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15505576/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com