Heim >Backend-Entwicklung >Golang >Warum funktionieren ImageMagick-Befehle in CMD, schlagen jedoch in PowerShell fehl?

Warum funktionieren ImageMagick-Befehle in CMD, schlagen jedoch in PowerShell fehl?

Barbara Streisand
Barbara StreisandOriginal
2024-10-26 08:58:02966Durchsuche

Why Do ImageMagick Commands Work in CMD but Fail in PowerShell?

ImageMagick-Befehle werden nicht im PowerShell-Fenster, sondern im CMD-Fenster ausgeführt

Problem:

Ein ImageMagick-Befehl zum Hinzufügen eines Wasserzeichen für ein Bild kann in PowerShell nicht ausgeführt werden, während es in CMD erfolgreich ausgeführt wird.

Ursache:

Der Befehl verwendet Sonderzeichen, die von verschiedenen Shells unterschiedlich interpretiert werden können (z. B. , Bash, CMD32, PowerShell).

Lösung:

Anführungszeichen und Shell-Syntax:

Bash: Escapen Sie Klammern mit Backslashes und setzen Sie Hashes in Anführungszeichen.

CMD32: Verwenden Sie Carets für Escapezeichen und verdoppeln Sie Prozentzeichen.

Powershell: Escape-Klammern mit Backticks.

Escape-Techniken:

Shell Escape Character Line Continuation
Bash Backslash Backslash
CMD32 Caret ^ Caret ^
PowerShell Backtick ` Backtick `

Beispielbefehle:

Bash:

<code class="sh">magick IMAGE1.PNG \
   \( IMAGE2.PNG -resize 50% -fill '#ff0000' -colorize 100% \) \
  -composite -transparent 'hsl(40,50,60)' result.png</code>

CMD32:

magick IMAGE1.PNG ^
   ( IMAGE2.PNG -resize 50%% -fill &quot;#ff0000&quot; -colorize 100% ) ^
  -composite -transparent &quot;hsl(40,50,60)&quot; result.png

Powershell:

magick IMAGE1.PNG `
   `( IMAGE2.PNG -resize 50% -fill &quot;#ff0000&quot; -colorize 100% `) `
  -composite -transparent &quot;hsl(40,50,60)&quot; result.png

Kreuz -Plattformlösung:

Um Shell-spezifische Anführungszeichenprobleme zu vermeiden, verwenden Sie die Option „-script“ von ImageMagick, um Befehle aus einer Datei zu lesen:

<code class="sh">magick -script script.mgk</code>

Skriptdatei ( script.mgk):

-size 640x480 xc:#ffff00
( foreground.png -resize 50% )
-gravity center -composite -write result.png

Das obige ist der detaillierte Inhalt vonWarum funktionieren ImageMagick-Befehle in CMD, schlagen jedoch in PowerShell fehl?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn