是否可以对批处理中的增量/步长变量进行平方 for 循环。
这就是它现在的样子
FOR /L %%A IN (1024,1000, 1048576) DO (
do stuff
)
但是,与其每次都上涨 1000,不如2^10, 2^11 .... 2^20 (1048576)
可以做到这一点?
不,for /l
循环不能处理几何增量。但是您可以使用批量算术
for /l %%a in (10 1 20) do (
set /a "A=1<<%%a"
setlocal enabledelayedexpansion
for %%A in (!A!) do ( endlocal
rem Your code here - do stuff
echo %%A
)
)
需要延迟扩展来处理代码块内不断变化的变量。如果您的内部代码没有延迟扩展处于活动状态的问题,则可以将其简化为
setlocal enabledelayedexpansion
for /l %%a in (10 1 20) do (
set /a "A=1<<%%a"
rem Your code here - do stuff
echo !A!
)
如果切换到PowerShell适合你,你可以使用
foreach ($i in 1..3) {
# example output
echo "1000^$i = $([Math]::Pow(1024, $i))"
# start "myprogram.bat --parameter $x
& 'myprogram.bat' @("--parameter", [Math]::Pow(1024, $i))
}