在 bat Windows 中使用不同 Magick 命令的嵌套循环

Nested loop with different Magick command in bat Windows

我正在尝试将许多 pdf 文件转换为 jpg,但前提是它只有 1 页。我宁愿使用多页 pdf 而不是图像。我尝试了不同的命令并让它们分别正常工作,identifyconvert。但是,我无法将它们组合起来在一个文件夹中工作。我还没到条件运算的地步(如果少于2页,就转)。我正在使用此代码

pause
set path="C:\Program Files\ImageMagick-7.0.8-Q16\";%path%
FOR /r %%g in (*.pdf) DO (
    for /f %%i in ('identify -format %n %%g') do set pgs=%%i
    echo %pgs%
echo "%%g"
::convert %%~ng%%~xg %%~ng.jpg
::del %%~ng.pdf
)
pause

它说命令的语法不正确。注释掉的部分工作正常。我不太了解命令行,所以非常感谢任何帮助。

这是最终有效的代码。它做了很多小事

  • 遍历文件夹和子文件夹
  • 评估每个pdf文件
  • 如果 pdf 文件的名称中没有“c”并且超过 1 页,请重命名为“c”在扩展名之前的名称之后。 (这有助于避免处理已处理的文件)

SETLOCAL 启用延迟扩展

pause 
set path="C:\Program Files\ImageMagick-7.0.8-Q16\";%path%

FOR /d /R %%i in (*) DO ( 

    cd "%%i"
        FOR /r %%g in (*.pdf) DO (
        (Echo "%%g" | FIND /I "_c_" 1>NUL )||(
            for /f %%i in ('magick identify -format %%n "%%g"') do if %%i gtr 1 ren %%~ng%%~xg %%~ng_c_%%~xg
)
)
cd..
)
pause