在命令行程序中使用forfiles

时间:2013-08-29 17:43:19

标签: image loops image-processing cmd converter

我有一个图像debayering程序,我通过命令提示符运行。它可以使用此命令对单个图像进行debayer:

DebayerGPU.exe -demosaic DFPD_R -GPU -pattern GRBG -i inputfilename.pgm -o outputfilename.ppm

我正试图让它在.pgm文件的整个目录上运行,我发现了forfiles命令。

我一直在尝试这样的事情:

forfiles /M *.pgm /C "DebayerGPU.exe -demosaic DFPD_R -GPU -pattern GRBG -i @fname.pgm -o @fname.ppm

但是当我运行时,debayering程序只返回其帮助窗口。 我成功循环debayer程序,如果文件的名称相同,增加的数字,然后我可以使用它for循环:

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

这是有效的,但截至目前,forfiles没有。我怀疑这与程序不接受来自forfiles的@fname有关。有关如何解决这个问题的想法吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

搞清楚了!

我尝试使用十六进制转义字符(0x22),但这不起作用。也没有%逃脱。

所以,我做了一个迷你for循环并将@fname作为字符串。

forfiles /M *.pgm /C "cmd /c for %s in (@fname) do DebayerGPU.exe -demosaic DFPD_R -CPU -pattern GRBG -i %s.pgm -o %s.ppm"