0

我编写了一个简短的 .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 语句之后将 () 放在命令周围,将 ; 并添加 del @fname.pgm。但这也行不通。

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

4

1 回答 1

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
于 2013-09-09T16:28:07.627 回答