我喜欢一次读取多个文件的输入,并在转到下一个文件之前处理该输入。所有文件都有一个特殊名称,用于定义其输入顺序。它如下:ordersheet_a_b_d。我虽然批处理文件中的以下代码允许我按照for循环指定的顺序读取它们,但它没有做任何事情。任何人都可以看到错误吗?我在.bat文件中有以下内容:
@echo off
for %%a in (20, 40, 80) do (
for %%b in (80, 160) do (
for /l %%c in (1,1,3) do (
for /l %%d in (1,1,10) do (
for /l %%e in (1,1,6) do (
for /l %%f in (0,1,6) do (
if %%e LSS %%f (
if exist ordersheet_%%a_%%b_%%d echo " " %%e %%f >> output.txt
if exist ordersheet_%%a_%%b_%%d START ThesisVelo.exe distancematrix_%%a.txt ordersheet_%%a_%%b_%%d %%c %%d %%e %%f >> output.txt
)
)
)
)
)
)
)
答案 0 :(得分:0)
下面的批处理文件实现了原始代码的相同过程,但它有一些小修改,使代码更清晰,并显示已处理文件的名称。请注意,我不知道你的代码应该达到什么目的!
@echo off
setlocal EnableDelayedExpansion
for %%a in (20 40 80) do (
for %%b in (80 160) do (
for /l %%c in (1,1,3) do (
for /l %%d in (1,1,10) do (
for /l %%e in (1,1,6) do (
rem Just process values of %%f greater than %%e
set /A f=%%e+1
for /l %%f in (!f!,1,6) do (
echo ordersheet_%%a_%%b_%%d c=%%c, d=%%d, e=%%e, f=%%f
if exist ordersheet_%%a_%%b_%%d (
echo " " %%e %%f >> output.txt
START ThesisVelo.exe distancematrix_%%a.txt ordersheet_%%a_%%b_%%d %%c %%d %%e %%f >> output.txt
)
)
)
)
)
)
)
输出的一些部分:
ordersheet_20_80_1 c=1, d=1, e=1, f=2
ordersheet_20_80_1 c=1, d=1, e=1, f=3
ordersheet_20_80_1 c=1, d=1, e=1, f=4
ordersheet_20_80_1 c=1, d=1, e=1, f=5
ordersheet_20_80_1 c=1, d=1, e=1, f=6
ordersheet_20_80_1 c=1, d=1, e=2, f=3
ordersheet_20_80_1 c=1, d=1, e=2, f=4
ordersheet_20_80_1 c=1, d=1, e=2, f=5
ordersheet_20_80_1 c=1, d=1, e=2, f=6
ordersheet_20_80_1 c=1, d=1, e=3, f=4
ordersheet_20_80_1 c=1, d=1, e=3, f=5
ordersheet_20_80_1 c=1, d=1, e=3, f=6
ordersheet_20_80_1 c=1, d=1, e=4, f=5
ordersheet_20_80_1 c=1, d=1, e=4, f=6
ordersheet_20_80_1 c=1, d=1, e=5, f=6
ordersheet_20_80_2 c=1, d=2, e=1, f=2
. . .
ordersheet_20_80_2 c=1, d=2, e=5, f=6
ordersheet_20_80_3 c=1, d=3, e=1, f=2
. . .
ordersheet_20_80_3 c=1, d=3, e=5, f=6
ordersheet_20_80_4 c=1, d=4, e=1, f=2
. . .
ordersheet_20_80_4 c=1, d=4, e=5, f=6
ordersheet_20_80_5 c=1, d=5, e=1, f=2
. . .
ordersheet_20_80_5 c=1, d=5, e=5, f=6
ordersheet_20_80_6 c=1, d=6, e=1, f=2
. . .
ordersheet_20_80_6 c=1, d=6, e=5, f=6
ordersheet_20_80_7 c=1, d=7, e=1, f=2
. . .
ordersheet_20_80_7 c=1, d=7, e=5, f=6
ordersheet_20_80_8 c=1, d=8, e=1, f=2
. . .
ordersheet_20_80_8 c=1, d=8, e=5, f=6
ordersheet_20_80_9 c=1, d=9, e=1, f=2
. . .
ordersheet_20_80_9 c=1, d=9, e=5, f=6
ordersheet_20_80_10 c=1, d=10, e=1, f=2
. . .
ordersheet_20_80_10 c=1, d=10, e=5, f=6
The same block above with c=2 and c=3 until:
ordersheet_20_80_10 c=3, d=10, e=5, f=6
The same whole block above, from:
ordersheet_20_160_1 c=1, d=1, e=1, f=2
until:
ordersheet_20_160_10 c=3, d=10, e=5, f=6
The same whole block above, from:
ordersheet_40_80_1 c=1, d=1, e=1, f=2
until:
ordersheet_40_160_10 c=3, d=10, e=5, f=6
The same, from:
ordersheet_80_80_1 c=1, d=1, e=1, f=2
until:
ordersheet_80_160_10 c=3, d=10, e=5, f=6