Heim >Backend-Entwicklung >Golang >Warum kann ich komplexe ImageMagick-Befehle nicht in Powershell ausführen, sie funktionieren aber in CMD?
Beim Versuch, ImageMagick-Befehle zu verwenden, standen Benutzer vor Herausforderungen bei der Ausführung in Powershell-Fenstern. Die Befehle laufen nahtlos in cmd-Fenstern. Versuche, das Problem durch das Einfügen von Backslashes vor Klammern zu beheben, waren ebenfalls erfolglos. Untersuchungen zeigen, dass die Magick-Direktive tatsächlich in den Umgebungsvariablen enthalten ist.
Obwohl komplexe Befehle in Powershell nicht ausgeführt werden können, werden einfache Befehle ohne Probleme ausgeführt. Dies deutet darauf hin, dass das Problem speziell bei komplexen Befehlen liegt.
ImageMagick bietet eine Vielzahl von Optionen und Funktionen, die eine sorgfältige Beachtung von Anführungszeichen und Escapezeichen erfordern Ausführen von Befehlen in verschiedenen Umgebungen, einschließlich:
Bash :
magick IMAGE1.PNG \ \( IMAGE2.PNG -resize 50% -fill '#ff0000' -colorize 100% \) \ -composite -transparent 'hsl(40,50,60)' result.png
Windows CMD32:
magick IMAGE1.PNG ^ ( IMAGE2.PNG -resize 50%% -fill "#ff0000" -colorize 100% ) ^ -composite -transparent "hsl(40,50,60)" result.png
Powershell:
magick IMAGE1.PNG ` `( IMAGE2.PNG -resize 50% -fill "#ff0000" -colorize 100% `) ` -composite -transparent "hsl(40,50,60)" result.png
Um potenzielle Probleme aufgrund umgebungsspezifischer Syntaxbeschränkungen zu vermeiden, umfasst ein plattformunabhängiger Ansatz die Verwendung von Skripten. Befehle können in einer Datei mit der Erweiterung „.mgk“ enthalten sein und ImageMagick kann sie direkt ausführen, ohne dass Shell-Interpretationen und Anführungszeichen erforderlich sind:
script.mgk:
-size 640x480 xc:#ffff00 ( foreground.png -resize 50% ) -gravity center -composite -write result.png
Aufruf:
magick -script script.mgk
Durch die Verwendung dieser Technik bleibt die Shell unabhängig von den im Skript verwendeten Symbolen und Zeichen und gewährleistet so eine nahtlose Ausführung in verschiedenen Umgebungen.
Das obige ist der detaillierte Inhalt vonWarum kann ich komplexe ImageMagick-Befehle nicht in Powershell ausführen, sie funktionieren aber in CMD?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!