Вложенный цикл с другой командой Magick в Windows Bat - PullRequest
0 голосов
/ 22 октября 2018

Я пытаюсь конвертировать многие PDF-файлы в JPG, но только если он имеет 1 страницу.Я скорее работаю с многостраничными PDF, чем с изображениями.Я пробовал разные команды и заставлял их работать по отдельности, как identify, так и convert.Однако я не смог объединить их для работы в папке.Я не дошел до точки условной операции (если меньше 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 голосов
/ 23 октября 2018

Это последний код, который работает.Он делает много мелочей

  • Перебирает папки и подпапки
  • Оценивает каждый файл PDF
  • Если файл PDF НЕ имеет " c"в его имени И иметь более 1 страницы, переименовать в" 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...