Rumah >pembangunan bahagian belakang >Golang >Mengapa Saya Tidak Boleh Menjalankan Perintah ImageMagick Kompleks dalam Powershell, Tetapi Ia Berfungsi dalam CMD?

Mengapa Saya Tidak Boleh Menjalankan Perintah ImageMagick Kompleks dalam Powershell, Tetapi Ia Berfungsi dalam CMD?

Linda Hamilton
Linda Hamiltonasal
2024-10-25 08:57:02937semak imbas

Why Can't I Run Complex ImageMagick Commands in Powershell, But They Work in CMD?

Arahan ImageMagick tidak boleh dijalankan dalam Powershell tetapi berjalan tanpa masalah dalam tetingkap cmd

Semasa cuba menggunakan arahan ImageMagick, pengguna telah menghadapi cabaran dalam melaksanakannya dalam tetingkap Powershell. Arahan berjalan dengan lancar dalam tetingkap cmd. Percubaan untuk menyelesaikan isu dengan menambahkan garis miring ke belakang sebelum kurungan juga tidak berjaya. Siasatan mendedahkan bahawa arahan magick memang termasuk dalam pembolehubah persekitaran.

Walaupun ketidakupayaan untuk menjalankan perintah yang kompleks dalam Powershell, arahan mudah dilaksanakan tanpa masalah. Ini menunjukkan bahawa masalahnya terletak pada perintah yang kompleks secara khusus.

Pemahaman tentang Petikan dan Petikan dalam Perintah ImageMagick

ImageMagick menawarkan pelbagai pilihan dan ciri, yang memerlukan perhatian yang teliti untuk memetik dan melarikan diri apabila melaksanakan arahan dalam pelbagai persekitaran, termasuk:

  • Bash/Unix/Linux Shells: Bash mentafsir aksara tertentu, seperti # untuk warna heksadesimal dan kurungan untuk sub-proses, memerlukan melarikan diri atau sintaks alternatif.
  • Fail Windows CMD32/BATCH: Aksara seperti kurungan, kurang daripada dan lebih besar daripada simbol dan tanda peratus perlu melarikan diri untuk mengelakkan kekeliruan dengan sintaks shell.
  • Powershell: Tanda kurung dan aksara sambungan baris perlu melarikan diri dengan tanda belakang untuk melaksanakan perintah yang betul.

Contoh Khusus Sintaks Perintah untuk Persekitaran Berbeza

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

Cross- Invokasi Perintah Platform

Untuk mengelakkan potensi isu yang timbul daripada kekangan sintaks khusus persekitaran, pendekatan bebas platform melibatkan penggunaan skrip. Perintah boleh terkandung dalam fail dengan sambungan ".mgk", dan ImageMagick boleh melaksanakannya secara langsung, memintas keperluan untuk tafsiran shell dan memetik isu:

script.mgk:

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

Invokasi:

magick -script script.mgk

Dengan menggunakan teknik ini, cangkerang kekal agnostik kepada simbol dan aksara yang digunakan dalam skrip, memastikan pelaksanaan yang lancar merentas persekitaran yang berbeza.

Atas ialah kandungan terperinci Mengapa Saya Tidak Boleh Menjalankan Perintah ImageMagick Kompleks dalam Powershell, Tetapi Ia Berfungsi dalam CMD?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn