بالإضافة إلى كونه أداة سطر أوامر، PowerShell هو لغة برمجة من Microsoft تمكنك من التحكم والتأتير على نظمك تلقائياً. تستخدم PowerShell بناء جملة مختلف عن معظم لغات البرمجة.
ولكن، بمجرد فهمك لبناء جمل العمليات في PowerShell، ستجد أن استخدامها ليس صعباً. أحد أكثر العمليات شيوعاً التي ستستخدمها في PowerShell هي عملية “غير متساوي” (-ne
). تسمح لك هذه العملية باختبار ما إذا كانت قيمتان ليستا متساويتين.
في هذا المقال، ستتعرف على عملية “غير متساوي” في PowerShell وكيفية استخدامها مع أمثلة.
المتطلبات
سيكون هذا الدرس عرضاً عملياً. إذا كنت ترغب في المتابعة، تأكد من وجود نظام يحتوي على PowerShell مثبت. يستخدم هذا الدرس Windows 10 وPowerShell 7.
استخدام عملية “غير متساوي” في PowerShell (الأساسيات)
باختصار، تحدد عملية “غير متساوي” في PowerShell (-ne
) ما إذا كانت قيمتان لا تساويان بعضهما البعض وتعيد قيمة بوليانية استناداً إلى النتيجة. إذا كانت القيم غير متساوية، فإن النتيجة هي صحيحة
؛ وإلا فإن النتيجة هي خاطئة
.
ولكن كيف ومتى يمكنك استخدام عملية “غير متساوي” في PowerShell؟ ستعلمك الأقسام التالية أساسيات عملية “غير متساوي” في PowerShell.
مقارنة المتغيرات
واحدة من أكثر الاستخدامات شيوعا لعامل الإختلاف في باورشيل هي مقارنة متغيرين. على سبيل المثال، افترض أن لديك متغيرين، $a
و $b
، وتريد أن ترى ما إذا كانا متساويين. بناء على ذلك، فإن بناء الجملة للمقارنة كما يلي:
إذا كانت قيم $a
و $b
غير متساوية، فسيعيد هذا المقارنة True
. وإلا، سيعيد False.
١. قم بتنفيذ الأوامر التالية في وحدة التحكم الخاصة بـ PowerShell لإنشاء المتغيرات التي ستستخدمها كأمثلة. المتغيرات $a، $b، $c، و $d تمثل قيم مختلفة. يمكنك مقارنة كل من هذه القيم لاختبار ما إذا كانت متساوية أم لا.
قم بتعيين قيمة واحدة لـ $c و $d لرؤية كيفية عمل عامل الإختلاف في باورشيل مع القيم المتساوية.
٢. الآن، قم بأداء عملية المقارنة باستخدام عامل الإختلاف في باورشيل لرؤية ما إذا كانت قيم $a و $b غير متساوية.
سيُعيد النتيجة True لأن قيمة $a هي 1، و $b هي 2، والتي ليست متساوية.

٣. قم الآن بمقارنة المتغيرات $c و $d لمعرفة ما إذا كانت أيضًا غير متساوية.
سترى إرجاع ناتج False، كما هو موضح في الصورة أدناه، لأن قيم $c و $d متساوية (3=3).

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

بالمقابل، فإن مقارنة القيم المتساوية ستُرجع False
.

إزالة قيمة من المصفوفة
يُرجع مشغل PowerShell Not Equal نتيجة بولية للإشارة إلى ما إذا كانت قيمتان غير متساويتين. بالإضافة إلى ذلك، يمكن لهذا المشغل أيضًا تصفية العناصر من مصفوفة.
على سبيل المثال، أنشئ متغيرًا يُدعى $numbers
يحتوي على مصفوفة من الأرقام من 1 إلى 5.

ثم، قم بتشغيل الأمر أدناه لإرجاع المصفوفة باستثناء رقم واحد (4
).
والآن يمكنك أن ترى أن الأمر قد أرجع كل عدد في المصفوفة باستثناء العدد 4.

مقارنة السلاسل
بالإضافة إلى الأرقام، يمكنك أيضًا تطبيق عملية المقارنة غير المتساوية في PowerShell على السلاسل.
1. على سبيل المثال، لنفترض أن لديك سلسلتان، “مرحبا” و “عالم”. لتحديد ما إذا كانت السلسلتان غير متساويتين، قم بتشغيل الأمر أدناه.
النتيجة هي صحيحة لأن “مرحبا” ليست متساوية لـ “عالم”.

2. الآن قارن السلاسل “مرحبا” و “hello” لترى ما إذا كانت متساوية.
ثم سترى النتيجة كاذبة لأن “مرحبا” متساوية لـ “hello”.

3. يعتبر مشغل Not Equal في PowerShell غير حساس لحالة الأحرف. كما يمكنك رؤية في الخطوة السابقة، “Hello” مساوٍ لـ “hello”. ولكن إذا كنت تتطلب حساسية لحالة الأحرف عند مقارنة القيم النصية، فاستبدل المشغل -ne بالمشغل -cne، والذي يعني Case Sensitive Not Equal.
ونتيجة لذلك، “Hello” و “hello” لم يعدا متساويين وفقًا لـ PowerShell.

باستخدام مشغل Not Equal في PowerShell في العالم الحقيقي (أمثلة)
الآن بعد أن فهمت المفهوم الأساسي لمشغل Not Equal في PowerShell، ستتيح لك الأقسام التالية تجربة بعض استخداماتها في العالم الحقيقي.
مراقبة حالة الخدمات
A staple of Windows systems administration is monitoring the server service status. This task involves filtering out which services whose Status Is Not Running
.
على سبيل المثال، قم بتشغيل أمر Get-Service لعرض جميع الخدمات على الجهاز المحلي.
يمكنك رؤية جميع الخدمات المتوقفة والقيد التشغيل في النتيجة أدناه.

الآن، لـ تصفية فقط تلك الخدمات التي ليست Running
، قم بتشغيل الأمر التالي، وقم بتطبيق المشغل -ne
كما يلي.
كما يمكنك رؤية أدناه، يعرض العمود Status فقط الخدمات المتوقفة بعد تطبيق مقارنة Not Equal في PowerShell.

بالمثل، قم بتشغيل الأمر التالي لإرجاع الخدمات التي Status Is Not Stopped
.
هذه المرة، سترى فقط الخدمات التي تعمل.

دمج عملية الإختلاف في PowerShell مع المشغل AND
بخلاف إجراء المقارنة 1:1، يمكنك دمج شرط الإختلاف في PowerShell مع مشغل المقارنة الآخر، مثل -eq
(مساوي)، باستخدام المشغل -and
. هذه الطريقة مفيدة عندما يجب أن يستوفي الكائن الذي تقوم بالمقارنة متطلبات متعددة.
على سبيل المثال، ينطوي مراقبة خدمات الخادم عادة على ضمان تشغيل جميع الخدمات التلقائية. قم بتشغيل الأمر أدناه لعرض قائمة بجميع الخدمات التي الحالة ليست قيد التشغيل
والتي نوع البدء هو تلقائي
. في هذا المثال، يجب أن تطابق قيمة الكائن جميع الشروط.
الآن يمكنك رؤية الخدمات التلقائية التي لا تعمل، مما يمكنك من اتخاذ الإجراءات اللازمة.

إضافة منطق الشرطية If/Else
يمكنك أيضًا استخدام عامل الإختلاف في PowerShell داخل البيانات الشرطية، مثل بيان if/else.
على سبيل المثال، يجب أن تكون الخدمة قيد التشغيل في معظم الحالات إذا كانت قيمة نوع البدء لديها تلقائية. يحصل السكريبت أدناه على جميع الخدمات، يتحقق من الخدمات التلقائية التي لا تعمل، وينفذ الإجراء التصحيحي(الإجراءات)—لعرض رسالة وبدء الخدمة.
ملاحظة: سيتم تعليق السطر Start-Service $_.Name ولن يتم تشغيله. افتح تعليق هذا السطر إذا كنت ترغب في تنفيذ الأمر.
انسخ الكود أدناه وقم بتشغيله في PowerShell.
النتيجة تظهر لك أي الخدمات التلقائية غير مشغّلة.

الاستنتاج
في هذا المقال، تعلمت عن مشغّل عدم المساواة في PowerShell. كما تعلمت كيفية استخدامه مع أمثلة. في هذه النقطة، يجب أن تكون لديك فهم جيد لكيفية عمله.
بهذه المعرفة الجديدة، يمكنك الآن استخدام مشغّل العدم المتساوي في نصوص PowerShell الخاصة بك لاختبار الشروط. ومع ذلك، تذكر أن هناك مشغّلات مقارنة أخرى متوفرة أيضًا. قد ترغب في دمج عدة مشغّلات لاختبار شروط أكثر تعقيدًا.