Verwenden von ImageMagick zum Identifizieren aller Dateien in mehreren Unterordnern

Verwenden von ImageMagick zum Identifizieren aller Dateien in mehreren Unterordnern

Ich möchte rennenBildMagickmit der identifyOption, alle Bilder in mehreren Ordnern gleichzeitig zu scannen.

Es sollte ähnlich der unten stehenden Syntax ausgeführt werden, ich möchte jedoch alles in derselben Protokolldatei protokollieren und wenn möglich auch hierfür eine Batchdatei erstellen.

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

Antwort1

Sie könnten einfach einenFÜR /FSchleife mit einemDIRBefehl, um den vollständigen expliziten Pfad zu jeder Datei aus dem Quellverzeichnis (D:\Images) abzurufen und ihn rekursiv zu durchlaufen.

Dadurch werden im Wesentlichen alle vollständigen, expliziten Pfade und Dateinamen magickeinzeln an den Befehl übergeben und anschließend zur späteren Überprüfung an die Protokolldatei angehängt.

Weitere Ressourcen und ein Beispielbefehl mit anwendbarer Syntax, der all dies verwendet, werden Ihnen weiter unten zur Verfügung gestellt, damit Sie es entsprechend nutzen können. Dies sollte ein guter Ausgangspunkt für Sie sein.


Befehlszeilenbeispiel

NOTIZ: Sie können den Teil durch D\Images\*.*"„as“ D\Images\*.jpg"oder „beliebige Dateierweiterungen“ ersetzen, um nur diese bestimmten Dateierweiterungen aufzulisten. Sie können ihn je F:\OtherFolder\*.png"nach Bedarf auch in „oder was auch immer“ ändern, sodass in diesem Teil des unten angegebenen Beispiels ein anderer Ordnerpfad und/oder andere Dateierweiterungen angegeben werden können.

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

Batch-Skriptbeispiel

NOTIZ: Ich habe dieses Skript erstellt, damit Sie die Variablen ganz einfach ganz oben für Ihre Anforderungen festlegen können, um sie bei jedem Lauf entsprechend anzupassen.

@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

Weitere Ressourcen

Antwort2

Der folgende Einzeiler (funktioniert unter Linux, aber wahrscheinlich auch unter Windows 10 mit der Windows PowerShell) gibt Ihnen eine rekursive Liste aller JPG-Bilder in den zugrunde liegenden Verzeichnissen und deren Details:

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

verwandte Informationen