如何使用批处理文件循环遍历非整数值?
我正在尝试使用0到1之间的不同参数多次运行我的应用程序,如下所示:
!! DO NOT RUN THIS !!
set application=C:\path\to\my\application.exe
for /L %%p in (0, 0.05, 1) do (
md %%p
cd %%p
START %application% %%p
cd ..
)
但是运行上面的代码会让我进入一个无限循环,我想因为for /L
正在寻找整数参数而0.05被转换为0。
是否可以使用批处理文件循环遍历非整数值?
答案 0 :(得分:3)
不可能,因为cmd.exe无法以任何方式处理实际值。
但你可以计算整数并稍后计算实际值。
setlocal EnableDelayedExpansion
for /L %%p in (0, 5, 100) do (
set "value=00%%p"
set "value=!value:~-3!"
set "prefix=!value:~0,1!"
set "postfix=!value:~-2!"
set "num=!prefix!.!postfix!"
md !num!
pushd !num!
START %application% !num!
popd
)
现在代码计数从0到100
每个号码都会以00
为前缀,以确保每个号码至少有三位数字(例如2-> 002)。
然后我只取最后三个字符,所以所有数字都有相同的长度。
5->005->005
15->0015->015
然后代码将数字分成两部分
015->prefix=0 postfix=15
然后set "num=!prefix!.!postfix!"
将点放在两部分之间