我正在使用一个执行图像处理的命令行程序,我需要在整个图像文件夹上运行相同的命令。我听说我可以在命令提示符下运行循环,但我在网上看到了各种不同的例子,无法弄清楚语法。文件夹中的图像标记为“single0.pgm,single1.pgm,single2.pgm,...”,一直到single39.pgm。我需要运行的命令是:
DebayerGPU.exe -demosaic DFPD_R -CPU -pattern GRBG -i single0.pgm -o single0.ppm
我需要为每张照片都这样做。在C中,它只是一个简单的for
循环,如
for (int j = 0; j<40; j++) {
DebayerGPU.exe -demosaic DFPD_R -CPU -pattern GRBG -i singlej.pgm -o singlej.ppm
}
如何在命令提示符下执行此操作?
答案 0 :(得分:2)
我明白了!对于任何好奇的人来说,循环是:
for %a in (0 1 2 3 4 5 6 7 8 9 10 11 1
2 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
39) do DebayerGPU.exe -demosaic DFPD_R -CPU -pattern GRBG -i single%a..pgm -o si
ngle%a.ppm
答案 1 :(得分:1)
以下是for循环的简短说明,并附有示例。 http://www.robvanderwoude.com/for.php 记下两个重要的关键点:
答案 2 :(得分:1)
for /l %a in (0,1,39) do DebayerGPU.exe -demosaic DFPD_R -CPU -pattern GRBG -i single%a..pgm -o single%a.ppm
不太容易发生错别字。此命令直接从提示符运行,但如果它是 批处理文件中的行,则需要为元变量%
的每个实例加倍%a
(即%a
在批处理文件中变为%%a
。