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

时间:2018-10-22 19:31:29

标签: windows batch-file for-loop command-line imagemagick-convert

我试图将许多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

它表示命令的语法不正确。注释掉的部分正常工作。我不太了解命令行,因此非常感谢您的帮助。

1 个答案:

答案 0 :(得分:-1)

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

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

SETLOCAL EnableDelayedExpansion

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