ImageMagick コマンドが CMD では機能するのに、PowerShell では失敗するのはなぜですか?

Barbara Streisand
リリース: 2024-10-26 08:58:02
オリジナル
953 人が閲覧しました

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

ImageMagick コマンドが PowerShell ウィンドウで実行されず、CMD ウィンドウで実行される

問題:

画像を追加するための ImageMagick コマンドCMD で正常に実行されているときに、PowerShell で画像へのウォーターマークの実行に失敗します。

原因:

コマンドは、シェルごとに異なる解釈が可能な特殊文字を使用しています (例: 、bash、CMD32、PowerShell)。

解決策:

引用符とシェル構文:

Bash: かっこをバックスラッシュでエスケープし、ハッシュを引用符で囲みます。

CMD32: エスケープにキャレットを使用し、パーセント記号を 2 倍にします。

Powershell: バッククォートで括弧をエスケープします。

エスケープ手法:

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

コマンド例:

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
ログイン後にコピー

クロス-プラットフォームの解決策:

シェル固有の引用符の問題を回避するには、ImageMagick の「-script」オプションを使用してファイルからコマンドを読み取ります:

<code class="sh">magick -script script.mgk</code>
ログイン後にコピー

スクリプト ファイル ( script.mgk):

-size 640x480 xc:#ffff00
( foreground.png -resize 50% )
-gravity center -composite -write result.png
ログイン後にコピー

以上がImageMagick コマンドが CMD では機能するのに、PowerShell では失敗するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート