Использование imagemagick для идентификации всех файлов в нескольких подпапках

Использование imagemagick для идентификации всех файлов в нескольких подпапках

Я хочу бежатьImageMagickс identifyвозможностью сканирования всех изображений в нескольких папках одновременно.

Его следует запускать аналогично приведенному ниже синтаксису, но я хочу регистрировать все это в одном файле журнала, и я хотел бы создать для этого пакетный файл, если это возможно.

magick identify -verbose "D:\Images" >log.txt 2>&1

решение1

Вы могли бы просто запуститьДЛЯ /Фпетля сДИРкоманда для получения полного явного пути к каждому файлу из исходного каталога (D:\Images) и его рекурсивного обхода.

По сути, это поочередно передает команде каждый полный явный путь и имя файла, magickа затем вы добавляете их в файл журнала для последующего просмотра.

Дополнительные ресурсы и пример команды с применимым синтаксисом, использующим все это, предоставлены ниже для вашего использования соответствующим образом. Это должно стать хорошей отправной точкой для вас.


Пример командной строки

ПРИМЕЧАНИЕ: Вы можете заменить часть на D\Images\*.*"или D\Images\*.jpg"на что-то еще, чтобы перечислить только эти конкретные расширения файлов, а также вы можете изменить ее на F:\OtherFolder\*.png"или на что-то еще, чтобы в этой части примера, который я привел ниже, можно было указать другой путь к папке и/или расширения файлов.

FOR /F "DELIMS=" %A IN ('DIR /A-D /S /B "D:\Images\*.*"') DO magick identify -verbose "%~A">>D:\logfile.txt

Пример пакетного скрипта

ПРИМЕЧАНИЕ: Я создал этот скрипт, чтобы вы могли легко задать переменные для своих нужд и соответствующим образом адаптировать их для каждого запуска.

@ECHO ON

SET Source=D:\Images
SET Ext=*.jpg
SET LogFile=D:\logfile.txt

FOR /F "DELIMS=" %%A IN ('DIR /A-D /S /B "%Source%\%Ext%"') DO magick identify -verbose "%%~A">>"%LogFile%"
GOTO EOF

Дополнительные ресурсы

решение2

Следующий однострочный код (работает в Linux, но, вероятно, также и в Windows 10 с использованием Windows PowerShell) выводит рекурсивный список всех изображений JPG в базовых каталогах и их подробную информацию:

find . -name "*.jpg" -exec identify {} \;

Связанный контент