是否可以在批量循环中对增量/步长变量求平方。
这就是它现在的样子
FOR /L %%A IN (1024,1000, 1048576) DO (
do stuff
)
然而,不是每次都增加1000,我想在2^10, 2^11 .... 2^20 (1048576)
上升,是否可以这样做?
答案 0 :(得分:3)
不,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!
)
答案 1 :(得分:1)
如果切换到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))
}