【问题标题】:How to execute two commands in one for loop of .bat?如何在一个.bat的for循环中执行两个命令?
【发布时间】:2013-09-13 04:52:33
【问题描述】:

我编写了一个简短的 .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 保留在那里。我的目标是添加另一个命令行/行,在将 .pgm 转换为 .ppm 后将其删除。

【问题讨论】:

    标签: image for-loop image-processing cmd


    【解决方案1】:

    使用&& 代替;

    但目前我什至不明白为什么它同时使用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
    

    【讨论】:

    • 谢谢!它使用 forfiles 和 for 因为如果我只使用 forfiles,DebayerGPU 程序会将“@fname”解释为实际文件名。
    猜你喜欢
    • 2020-05-27
    • 2012-06-26
    • 2023-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多