تعلم المهوس مدرسة PowerShell المتغيرات ، المدخلات والمخرجات
عندما نبتعد عن تشغيل الأوامر وننتقل إلى كتابة النصوص الكاملة ، ستحتاج إلى مكان مؤقت لتخزين البيانات. هذا هو المكان الذي تأتي فيه المتغيرات.
تأكد من قراءة المقالات السابقة في السلسلة:
- تعلم كيفية أتمتة ويندوز مع PowerShell
- تعلم استخدام Cmdlets في PowerShell
- تعلم كيفية استخدام الكائنات في PowerShell
- تعلم تنسيق وتصفية ومقارنة في PowerShell
- تعلم كيفية استخدام الاتصال عن بعد في PowerShell
- استخدام PowerShell للحصول على معلومات الكمبيوتر
- العمل مع مجموعات في PowerShell
وتنبقي لبقية المسلسل طوال الأسبوع.
المتغيرات
تسمح معظم لغات البرمجة باستخدام المتغيرات ، التي هي عبارة عن حاويات ببساطة تحتوي على قيم. في PowerShell ، لدينا أيضًا متغيرات وهي سهلة الاستخدام. فيما يلي كيفية إنشاء متغير يسمى "FirstName" وإعطائه قيمة "Taylor".
$ FirstName = "تايلور"
أول شيء يبدو أن معظم الناس يسألون عنه هو لماذا وضعنا علامة الدولار أمام اسم المتغيرات ، وهذا في الواقع سؤال جيد جدا. حقا ، علامة الدولار هي مجرد تلميح صغير إلى القشرة أننا نريد الوصول إلى محتويات المتغير (أعتقد ما هو داخل الحاوية) وليس الحاوية نفسها. في PowerShell ، لا تتضمن أسماء المتغيرات علامة الدولار ، مما يعني أنه في المثال أعلاه يكون اسم المتغيرات هو "FirstName".
في PowerShell ، يمكنك مشاهدة جميع المتغيرات التي قمت بإنشائها في متغير PSDrive.
متغير gci:
مما يعني أنه يمكنك حذف متغير من shell في أي وقت أيضًا:
متغير عنصر إزالة: \ FirstName
لا يجب أن تحتوي المتغيرات على كائن واحد أيضًا ؛ يمكنك بسهولة تخزين كائنات متعددة في متغير. على سبيل المثال ، إذا كنت ترغب في تخزين قائمة من العمليات قيد التشغيل في متغير ، فيمكنك فقط تعيين إخراج عملية Get-Process.
$ Proc = الحصول على العملية
الحيلة لفهم هذا هي أن نتذكر أن الجانب الأيمن من علامة المساواة يتم تقييمه دائمًا أولاً. هذا يعني أنه يمكنك الحصول على خط أنابيب كامل على الجانب الأيمن إذا كنت تريد ذلك.
$ CPUHogs = الحصول على العملية | فرز وحدة المعالجة المركزية -Descending | حدد -First 3
سيحتوي متغير CPUHogs الآن على العمليات الثلاثة الجارية باستخدام معظم وحدة المعالجة المركزية.
عندما يكون لديك متغير يحمل مجموعة من الكائنات ، هناك بعض الأشياء التي يجب أن تكون على علم بها. على سبيل المثال ، يؤدي استدعاء طريقة على المتغير إلى استدعاء كل كائن في المجموعة.
$ CPUHogs.Kill ()
التي من شأنها أن تقتل كل ثلاثة عملية في المجموعة. إذا كنت تريد الوصول إلى كائن واحد في المتغير ، فستحتاج إلى معاملته كصفيف.
$ CPUHogs [0]
سوف يعطيك ذلك الكائن الأول في المجموعة.
لا احصل على القبض!
يتم كتابة المتغيرات في PowerShell بشكل ضعيف افتراضيًا مما يعني أنها يمكن أن تحتوي على أي نوع من البيانات ، وهذا يبدو للقبض على القادمين الجدد إلى PowerShell في كل وقت!
$ a = 10
$ b = "20"
لذلك لدينا متغيرين ، واحد يحتوي على سلسلة والآخر عدد صحيح. ماذا يحدث إذا قمت بإضافتها؟ يعتمد الأمر في الواقع على الترتيب الذي تضيفه إليه.
$ a + $ b = 30
في حين
$ b + $ a = 2010
في المثال الأول ، يكون المعامل الأول عبارة عن عدد صحيح ، $ a ، لذلك يعتقد PowerShell أنك تحاول القيام بالرياضيات ، وبالتالي يحاول تحويل أي معاملات أخرى إلى أعداد صحيحة كذلك. ومع ذلك ، في المثال الثاني ، يكون المعامل الأول عبارة عن سلسلة ، لذلك يقوم PowerShell بتحويل باقي المعاملات إلى سلاسل وسَلسَتها. تمنع البرامج النصية الأكثر تقدمًا هذا النوع من gotcha عن طريق إرسال المتغير إلى النوع الذي يتوقعونه.
[int] $ Number = 5
[int] $ Number = '5'
سيؤدي كلاهما أعلاه إلى متغير رقم يحتوي على كائن صحيح بقيمة 5.
المدخلات والمخرجات
نظرًا لأن PowerShell يهدف إلى تشغيل الأشياء تلقائيًا ، فستحتاج إلى تجنب مطالبة المستخدمين بتوفير المعلومات كلما أمكن ذلك. مع ذلك ، ستكون هناك أوقات لا يمكنك تجنبها ، وبالنسبة للأوقات يكون لدينا الأمر Read-Host cmdlet. استخدامه بسيط للغاية:
$ FirstName = Read-Host -Prompt 'أدخل اسمك الأول'
سيتم حفظ أي شيء قمت بإدخاله في المتغير.
يعد إخراج الكتابة بنفس السهولة باستخدام الأمر cmdlet لـ Write-Output.
كتابة المخرجات "How-To Geek Rocks!"
انضم إلينا غدًا حيث نربط كل شيء تعلمناه معًا!