如何在.bat的一个for循环中执行两个命令?

时间:2013-09-09 16:20:44

标签: image for-loop image-processing cmd

我写了一个简短的.bat文件,通过我的一些程序转换图像。不幸的是,我拥有的图像文件夹非常大,而且现在看来,这个程序会产生.png,但也会留下一个.pgm。这会导致程序停止,因为文件夹内存不足。

.bat现在是:

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

我尝试在自己的引号中添加“del @ fname.pgm”,并且我在do语句之后尝试使用put()来放置;并添加del @ fname.pgm。但这也行不通。

程序的第二行将.pgm转换为.ppm并将.pgm保留在那里。我的目标是添加另一个命令/行,在转换为.ppm后删除.pgm。

1 个答案:

答案 0 :(得分:0)

使用&&代替;

但目前我甚至不知道为什么这会同时使用forfilesfor。应该没有理由这样做。如果我理解正确,你可以使用

mogrify -format pgm ephemeral:*.png
for %%s in (*.pgm) do (
  DebayerGPU.exe -demosaic DFPD_R -GPU -pattern GRBG -i %%s -o %%~ns.ppm
  del %%s
)
mogrify -format png ephemeral:*.ppm