"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > لماذا لا يمكنني تشغيل أوامر ImageMagick المعقدة في Powershell، لكنها تعمل في CMD؟

لماذا لا يمكنني تشغيل أوامر ImageMagick المعقدة في Powershell، لكنها تعمل في CMD؟

تم النشر بتاريخ 2024-11-08
تصفح:898

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

لا يمكن تشغيل أمر ImageMagick في Powershell ولكنه يعمل بدون مشاكل في نافذة cmd

أثناء محاولة استخدام أوامر ImageMagick، واجه المستخدمون تحديات في تنفيذها داخل نوافذ Powershell. تعمل الأوامر بسلاسة في نوافذ cmd. محاولات حل المشكلة عن طريق إضافة خطوط مائلة عكسية قبل الأقواس باءت بالفشل أيضًا. تكشف التحقيقات أن التوجيه السحري مضمن بالفعل في متغيرات البيئة.

على الرغم من عدم القدرة على تشغيل أوامر معقدة في Powershell، يتم تنفيذ الأوامر البسيطة دون مشاكل. يشير هذا إلى أن المشكلة تكمن في الأوامر المعقدة على وجه التحديد.

رؤى حول الاقتباسات والاقتباسات في أوامر ImageMagick

يقدم ImageMagick مجموعة واسعة من الخيارات والميزات، الأمر الذي يتطلب اهتمامًا دقيقًا بالاقتباس والهروب عندما تنفيذ الأوامر في بيئات مختلفة، بما في ذلك:

  • Bash/Unix/Linux Shells: يفسر Bash أحرفًا محددة، مثل # للألوان السداسية العشرية والأقواس للعمليات الفرعية، مما يتطلب الهروب أو بناء جملة بديل.
  • ملفات Windows CMD32/BATCH: تحتاج الأحرف مثل الأقواس، وأقل من وأكبر من الرموز، وعلامات النسبة المئوية إلى الهروب لمنع الخلط مع بناء جملة Shell.
  • Powershell: تستلزم الأقواس وأحرف استمرار السطر الهروب باستخدام علامات التحديد الخلفية لتنفيذ الأمر بشكل صحيح.

أمثلة محددة على بناء جملة الأوامر لبيئات مختلفة

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 - تغيير الحجم بنسبة 50%% - تعبئة "#ff0000" - تلوين بنسبة 100% ) ^ - مركب - شفاف "hsl(40,50,60)" result.png
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 - تغيير الحجم بنسبة 50% - تعبئة "#ff0000" - تلوين بنسبة 100% `) ` - مركب - شفاف "hsl(40,50,60)" result.png
magick IMAGE1.PNG ^
   ( IMAGE2.PNG -resize 50%% -fill "#ff0000" -colorize 100% ) ^
  -composite -transparent "hsl(40,50,60)" result.png
استدعاء الأوامر عبر الأنظمة الأساسية

لتجنب المشكلات المحتملة الناشئة عن قيود بناء الجملة الخاصة بالبيئة، يتضمن النهج المستقل عن النظام الأساسي استخدام البرامج النصية. يمكن تضمين الأوامر داخل ملف بامتداد ".mgk"، ويمكن لـ ImageMagick تنفيذها مباشرة، متجاوزًا الحاجة إلى تفسير الصدفة ومشكلات الاقتباس:

script.mgk:

-الحجم 640x480xc:#ffff00 ( foreground.png - تغيير الحجم بنسبة 50٪ ) - مركز الجاذبية - مركب - كتابة النتيجة.png
-size 640x480 xc:#ffff00
( foreground.png -resize 50% )
-gravity center -composite -write result.png

magick -script script.mgk

من خلال استخدام هذه التقنية، تبقى الصدفة لا يبالي بالرموز والأحرف المستخدمة في النص، مما يضمن التنفيذ السلس عبر بيئات مختلفة.
            
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3