ما هي المتغيرات التلقائية في بوويرشيل

Ma Hy Almtghyrat Altlqayyt Fy Bwwyrshyl



PowerShell's ' المتغيرات التلقائية 'ضرورية لإدارة النظام والأتمتة وأنشطة البرمجة النصية. تم تضمين هذه المتغيرات في وقت تشغيل PowerShell وتعمل كعناصر نائبة لتخزين معلومات محددة والرجوع إليها أثناء تنفيذ برنامج نصي أو أمر. يمكن أن يؤدي فهم هذه المتغيرات التلقائية واستخدامها بشكل فعال إلى تعزيز كفاءة ووظائف البرامج النصية بوويرشيل بشكل كبير.

تهدف هذه المقالة إلى استكشاف مفهوم 'المتغيرات التلقائية' في PowerShell وأهميتها وكيفية الاستفادة منها في سيناريوهات مختلفة.







ما هي المتغيرات التلقائية في PowerShell؟

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



يقدم PowerShell العديد من 'المتغيرات التلقائية' وكل منها يخدم غرضًا مميزًا في تنفيذ البرنامج النصي. هذه المتغيرات هي كما يلي:



1. $ PSVersionTable

أحد المتغيرات التلقائية الأساسية في PowerShell هو ' PSVersionTable دولار '. يسمح هذا المتغير لمطوري البرامج النصية بالتحقق من إصدار PowerShell المستخدم ، والذي يمكن أن يكون حاسمًا عند النظر في توافق وتوافر بعض الميزات والوظائف.





الخصائص التالية مرتبطة بهذا المتغير:

الإصدار: تُرجع رقم إصدار PowerShell.



PSEdition: بالنسبة إلى PowerShell 4 والإصدارات الأقدم ، بالإضافة إلى PowerShell 5.1 في إصدارات Windows كاملة الميزات ، فإن هذه الخاصية لها القيمة 'سطح المكتب'. هذه الخاصية لها قيمة Core لـ PowerShell 6 والإصدارات الأحدث ، بالإضافة إلى Windows PowerShell 5.1 للإصدارات ذات الأثر المنخفض مثل Windows Nano Server أو Windows IoT.

GitCommitId: يجلب معرّف الالتزام GitHub الخاص بالملفات المصدر.

أنت: يسجل المعلومات حول نظام الكمبيوتر الذي يستخدمه PowerShell.

منصة: إرجاع النظام الأساسي الداعم لنظام التشغيل. Unix له قيمة على Linux و macOS. تحقق من $ IsMacOs و $ IsLinux.

إصدارات متوافقة: يتم إرجاع إصدارات PowerShell المتوافقة مع الإصدار الحالي.

الإصدار: تُرجع رقم إصدار بروتوكول الإدارة عن بُعد في PowerShell.

الإصدار: إرجاع إصدار طريقة التسلسل.

الإصدار: إرجاع رقم إصدار حزمة WS-Management.

$ PSVersion الجدول

2. Args دولار

متغير تلقائي أساسي آخر في PowerShell هو ' $ أرجس '، والذي يحتوي على مجموعة من وسيطات سطر الأوامر التي تم تمريرها إلى برنامج نصي أو وظيفة. يمكّن هذا المتغير المطورين من معالجة الوسائط المقدمة ومعالجتها ديناميكيًا داخل نصوصهم.

عند تحديد دالة ، يمكنك إما استخدام الكلمة الأساسية 'param' للإعلان عن المعلمات أو يمكنك إضافة قائمة من المعلمات مفصولة بفواصل بين أقواس بعد اسم الوظيفة. يخزن متغير '$ Args' لأحد الأحداث كائنات تعمل كعناصر نائبة لمعلمات الحدث للحدث الذي تتم معالجته:

foreach ( $ أرج في $ أرجس ) {
اكتب المضيف $ أرج
}

3. $ MyInvocation

ال ' $ MyInvocation 'متغير يعطي معلومات أساسية مهمة حول البرنامج النصي أو الإجراء قيد التشغيل حاليًا. يوفر خصائص مثل اسم البرنامج النصي ورقم سطر البرنامج النصي وما إذا كان يتم تشغيل البرنامج النصي بشكل تفاعلي أو غير تفاعلي. تساعد هذه الخصائص مطوري البرامج النصية في تنفيذ منطق التفريع ، أو تحديد آليات معالجة الأخطاء ، أو إنشاء تسجيل ذي مغزى وإعداد تقارير:

$ دعوتي

4. $ خطأ

متغير تلقائي أقل شهرة ' $ خطأ '، يلتقط بشكل فعال أي رسائل خطأ أو استثناءات تحدث أثناء تنفيذ البرنامج النصي. يمكن الوصول إلى 'خطأ $' لاسترداد تفاصيل أخطاء محددة مثل رسائل الاستثناءات أو تتبعات المكدس أو رموز الخطأ ، مما يتيح التحليل التفصيلي وتصحيح الأخطاء.

أحدث خطأ يمثله كائن الخطأ الأول في المصفوفة ' $ خطأ [0] '. يمكنك استخدام خيار ErrorAction العام مع القيمة 'Ignore' لإيقاف إضافة الأخطاء إلى مصفوفة '$ Error'.

افترض أننا كتبنا أمرًا دقيقًا:

IP [ onfig

الآن ، إذا أدخلنا الأمر cmdlet '$ Error':

$ خطأ

5. PSCmdlet دولار

عند العمل باستخدام وحدات PowerShell ، فإن المتغير التلقائي ' PSCmdlet دولار يدخل حيز التنفيذ. يوفر هذا المتغير وصولاً إلى المثيل الحالي لأمر cmdlet أو الوظيفة التي يتم استدعاؤها ، مما يسهل التفاعل المباشر مع خصائصه وطرقه.

باستخدام '$ PSCmdlet' ، يمكن لمطوري البرامج النصية المتقدمين ضبط سلوك الوحدات وتحسينها عن طريق توسيع أو تعديل الوظائف المضمنة. يمكنك استخدام سمات الكائن وطرقه في الأمر cmdlet أو رمز الوظيفة استجابةً لمعايير الاستخدام:

وظيفة typeof-psCmdlet {
[ cmdlet ملزمة ( ) ] بارام ( )
صدى صوت 'نوع' $ psCmdlet يكون $ (psCmdlet.GetType () .الاسم الكامل)'
}

typeof-psCmdlet

بالإضافة إلى المتغيرات المذكورة أعلاه ، يشمل PowerShell متغيرات تلقائية مثل $ HOME و $ PROFILE و $ PWD وغيرها الكثير ، والتي تخدم أغراضًا مختلفة ، مثل الوصول إلى المدخلات وتتبع الأخطاء واسترداد معلومات البيئة وإدارة المعلمات وغير ذلك الكثير. هذه المتغيرات مذكورة أدناه:

المتغيرات التلقائية وصف
$$ يحتفظ بآخر رمز مميز في السطر السابق تم تلقيه بواسطة جلسة PowerShell.
يخزن حالة تنفيذ الأمر الأخير.
^ دولار يحتوي على الرمز المميز الأول من السطر الأخير الذي تلقته الجلسة.
_ دولار يمثل الكائن الحالي في خط الأنابيب.
$ ConsoleFileName يحتوي على مسار ملف وحدة التحكم (.psc1) الأكثر استخدامًا في الجلسة.
$ EnabledExperimentalFeatures يحتوي على قائمة بالميزات التجريبية الممكنة.
حدث $ يحتوي على كائن 'PSEventArgs' يمثل الحدث الذي تتم معالجته.
$ EventArgs يحتوي على وسيطة الحدث الأول للحدث الجاري معالجته.
$ EventSubscriber يمثل المشترك الحدث للحدث قيد المعالجة.
ExecutionContext $ يمثل سياق التنفيذ لمضيف PowerShell.
$ خطأ يمثل القيمة المنطقية 'خطأ'.
$ foreach يحتوي على عداد حلقة 'لكل'.
$ الصفحة الرئيسية يحتوي على المسار الكامل للدليل الرئيسي للمستخدم.
مضيف دولار يمثل التطبيق المضيف الحالي لـ PowerShell.
الإدخال $ يعمل كعداد لجميع المدخلات التي تم تمريرها إلى دالة أو برنامج نصي.
$ IsCoreCLR يشير إلى ما إذا كانت الجلسة تعمل في .NET Core Runtime (CoreCLR).
ايسلينكس يشير إلى ما إذا كانت الجلسة تعمل على نظام تشغيل Linux.
إسماك يشير إلى ما إذا كانت الجلسة تعمل على نظام تشغيل MacOS.
$ IsWindows يحدد ما إذا كانت الجلسة تعمل على نظام تشغيل Windows.
$ LASTEXITCODE يخزن كود الخروج لآخر برنامج أصلي أو برنامج PowerShell النصي.
المباريات $ يحتوي على سلاسل متطابقة من عاملي التشغيل '-match' و '-notmatch'.
$ NestedPromptLevel يتتبع مستوى المطالبة الحالي في أوامر متداخلة أو سيناريوهات تصحيح الأخطاء.
$ فارغة يمثل قيمة فارغة أو فارغة.
PID دولار يحتوي على معرف العملية (PID) لجلسة PowerShell.
الملف الشخصي $ يحتوي على المسار الكامل لملف تعريف PowerShell للمستخدم الحالي والتطبيق المضيف.
$ PSBoundParameters يحمل قاموسًا للمعلمات التي تم تمريرها إلى برنامج نصي أو وظيفة وقيمها.
$ PSCommandPath يحتوي على المسار الكامل واسم الملف النصي الجاري تنفيذه.
$ PSCulture يعكس ثقافة مساحة تشغيل PowerShell الحالية.
PSEdition دولار يحتوي على معلومات إصدار PowerShell.
PSHOME دولار يحتوي على المسار الكامل لدليل تثبيت PowerShell.
$ PSItem مثل $ _ ، يمثل الكائن الحالي في خط الأنابيب.
$ PSScriptRoot يحتوي على المسار الكامل للدليل الأصل للنص البرمجي المنفذ.
$ PSSenderInfo يحتوي على معلومات حول المستخدم الذي بدأ PSSession.
$ PSUICulture يعكس ثقافة واجهة المستخدم (UI) التي تم تكوينها في نظام التشغيل.
الأشخاص ذوي الإعاقة يمثل دليل العمل الحالي لجلسة PowerShell.
المرسل $ يحتوي على الكائن الذي أنشأ الحدث.
$ ShellId يحتوي على معرف الغلاف الحالي.
$ StackTrace يخزن تتبع المكدس لأحدث خطأ.
تبديل $ يحتوي على عداد بيان 'التبديل'.
$ هذا يشير إلى مثيل فئة في كتل البرامج النصية التي تعمل على توسيع الفئات.
$ صحيح يمثل القيمة المنطقية 'True'.

يمكن العثور على جميع 'المتغيرات التلقائية' في PowerShell عن طريق تشغيل الأمر التالي:

الحصول على المتغير

خاتمة

' المتغيرات التلقائية 'يشكل العمود الفقري لبرمجة PowerShell النصية ، مما يسمح للمطورين بالحصول على معلومات حول النظام ووسيطات سطر الأوامر وسياق تنفيذ البرنامج النصي والمزيد. من خلال تسخير المتغيرات التلقائية مثل '$ PSVersionTable' و '$ Args' و '$ MyInvocation' و '$ Error' وغيرها ، يمكن لمطوري البرامج النصية لـ PowerShell إنشاء ممارسات إدارة نظام مبسطة.