mogrify - wie können Sie durch Unterordner in Windows rekursieren?

782
Regmi

Ich dachte, es gäbe einen einfachen Schalter in den mogrifyBefehlsoptionen, der besagt, dass auch Unterordner durchlaufen werden. Ich habe keine gefunden. Unter Linuxfind scheint der Befehl " " der Trick zu sein. Wie machen Sie das unter Windows ?

magick mogrify -resample 72 -resize 700x700 -format png -path "C:\ImageMagick-7.0.8-Q16\dest" *.* 

funktioniert, aber ich brauche es auch, um durch Unterordner zu recherchieren. Was ist der einfachste Weg, das zu tun?

Idealerweise suche ich nach der Quellverzeichnisstruktur, die im Ziel aber nur mit den verarbeiteten Bildern erhalten bleibt.

1

1 Antwort auf die Frage

1
Pimp Juice IT

ImageMagick Mogrify-Dateien rekursiv - Windows

Sie können eine FOR / R- Schleife verwenden, um die Dateien zu wiederholen, beginnend mit dem Stammverzeichnis, in dem sich die Dateien befinden, und dann die entsprechenden Befehle entsprechend den nachstehenden Beispielen für jede Datei ausführen.

Wenn Sie den -pathParameter weglassen, scheint es, dass er für die Originaldateien ausgeführt wird, wo sie sich befinden. Um eine einfache Lösung zum Beibehalten der Originalstruktur aus der Originalquelle zu erhalten, sollten Sie einfach den ursprünglichen Stammordner der Quelldateien an einen neuen Speicherort kopieren und diesen Ordner umbenennen.


Beispielbefehl

Hinweis: Stellen Sie sicher, C:\Source\Folder\Rootdass Sie den exakten Ordner verwenden, in dem sich die Dateien oder Datei-Unterordner befinden und dass die Befehlsoperationen für diese Dateien erneut ausgeführt werden.

for /r "C:\Source\Folder\Root" %a in (*.*) do mogrify -resample 72 -resize 700x700 -format png "%~a" 

Beispielbefehl (mit Löschen)

for /r "C:\Source\Folder\Root" %a in (*.*) do mogrify -resample 72 -resize 700x700 -format png "%~a" && IF NOT [%~Xa]==[.png] DEL /Q /F "%~a" 

Weitere Ressourcen

  • FOR / R
  • Batch-Ersetzungen (FOR /?)

    Darüber hinaus wurde die Ersetzung von FOR-Variablenreferenzen verbessert. Sie können jetzt die folgende optionale Syntax verwenden:

    %~xI - expands %I to a file extension only 
  • mogrify

  • Del
Klappt wunderbar. Vielen Dank! Ich muss in der Lage sein, die Originaldateien zu löschen, da diese sehr große Tiffs sind und ich sie nicht in der Ausgabe haben möchte. Ich kann Kopien der ursprünglichen Ordnerstruktur erstellen, sodass das Skript keine neue Ordnerstruktur für die Ausgabe erstellen muss. Es könnte sich dabei um eine Inplace-Überschreibung handeln. Regmi vor 6 Jahren 0
Wird besorgt! Eine Sache noch. Wenn ich einen Schalter wie -profile "sRGB.icc" hinzufüge, muss ich ihn dann im Befehl aufgrund der Anführungszeichen, die ich verwende, mit Escapezeichen versehen? Beispiel: für / r "C: \ ImageMagick-7.0.8-Q16 \ source"% a in (*. *) mach mickify -profile "sRGB.icc" -resample 72 -resize 700x700 -format png "% ~ a " Regmi vor 6 Jahren 0
Ich dachte mir, keine Sorgen. Der Befehl ist vollkommen korrekt. Es scheint, als wäre das Hinzufügen des Profils zu PNG ein Problem. Regmi vor 6 Jahren 0