批处理文件-仅转换新文件

时间:2018-07-27 16:57:47

标签: batch-file imagemagick

我的PDF目录越来越多,我正在使用ImageMagick将其转换为JPG。随着它变大,每次都没有必要重新转换所有文件。

这是我的命令:

FOR /R %%a IN (*.pdf) DO magick -density 120 "%%~a" -quality 90 "%%~dpna.jpg"

如何构造批处理文件或ImageMagick命令以仅处理尚未具有匹配JPG的PDF?

1 个答案:

答案 0 :(得分:1)

一个简单的解决方案是使用命令 IF 检查当前* .pdf文件是否存在* .jpg:

for /R %%I in (*.pdf) do if not exist "%%~dpnI.jpg" magick -density 120 "%%I" -quality 90 "%%~dpnI.jpg"

另一种可能性是使用文件的存档属性,如果在目录中创建或修改文件,该属性将自动设置。

for /F "delims=" %%I in ('dir *.pdf /AA-D-H /B /S 2^>nul') do (
    %SystemRoot%\System32\attrib.exe -a "%%I"
    magick -density 120 "%%I" -quality 90 "%%~dpnI.jpg"
)

使用此解决方案的主要优点是,一旦将PDF文件转换为JPEG文件,则将其覆盖,对于更新的PDF文件,再次转换为JPEG。

要了解所使用的命令及其工作方式,请打开命令提示符窗口,在其中执行以下命令,并非常仔细地阅读每个命令显示的所有帮助页面。

  • attrib /?
  • dir /?
  • for /?
  • if /?