Ich möchte rennenBildMagickmit der identify
Option, 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 magick
einzeln 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 {} \;