قل وداعًا لإخراج السيناريو الممل والمتوقع! باستخدام أمر PowerShell Write-Output
، يمكنك إضفاء الإبداع والشخصية على سيناريوهات PowerShell الخاصة بك.
أمر Write-Output
هو أداة قوية وشريك مثالي لجميع احتياجات الأتمتة وإدارة النظام الخاصة بك. وفي هذا البرنامج التعليمي، ستتعلم كيفية استغلال إمكانات أمر Write-Output
إلى أقصى حده.
هل أنت مستعد؟ استمر في القراءة واكتشف سحر أمر Write-Output
!
المتطلبات المسبقة
سيكون هذا البرنامج التعليمي عبارة عن عرض عملي. لكي تتمكن من متابعته، تأكد من وجود كمبيوتر يحتوي على PowerShell مثبتًا (مفضلًا الإصدار الأحدث). يستخدم هذا البرنامج التعليمي نظام التشغيل Windows 10 مع PowerShell 7 مثبتًا.
إخراج الكائنات إلى وحدة التحكم
يقوم أمر PowerShell Write-Output
بكتابة الكائنات إلى تيار الإخراج وعرض نتائج الأوامر أو الرسائل في وحدة التحكم. ولكن ستفاجأ من كيفية جعل هذه الأداة للإخراج أكثر معنى وقيمة.
بدلاً من عرض النتيجة في وحدة التحكم، استخدم cmdlet Write-Output
لتخصيص الناتج. يمكن لـ cmdlet Write-Output
إخراج أي كائن أو نوع بيانات، مثل سلاسل النصوص، الأعداد الصحيحة، المصفوفات، وحتى الكائنات المعقدة.
قم بتشغيل الأمر التالي لإخراج رسالة Hello, World! إلى وحدة التحكم.
فيما يلي يمكنك رؤية الوظيفة الأساسية لـ cmdlet Write-Output
. ولكن تابع القراءة لمعرفة المزيد عن استخدام هذا الأمر بشكل متوسط ومتقدم.<>

إرسال الكائنات إلى أمر آخر
بالإضافة إلى عرض النتيجة في وحدة التحكم، يمكنك استخدام أمر Write-Output
لإرسال الكائن إلى أمر آخر للمعالجة الإضافية. كيف؟ باستخدام عامل الأنابيب (|
). يجعل الأنابيب Pipelining الأمر Write-Output
أداة مفيدة ومتعددة الاستخدامات للمهام التلقائية وإدارة النظام.
لنفترض أنك ترغب في معرفة العملية التي تستهلك معظم الموارد الخاصة بك، مثل وحدة المعالجة المركزية (CPU).
قم بتشغيل الأوامر أدناه لتنفيذ ما يلي:
- استرداد قائمة بجميع العمليات (
Get-Process
) التي تعمل على النظام الخاص بك. - أخرج القائمة إلى الأنبوبة، التي يتم تمريرها إلى أمر
Sort-Object
. يسمح لك مشغل الأنبوبة بربط عدة أوامر معًا ومعالجة إخراج أمر واحد كإدخال لآخر. - قم بترتيب قائمة العمليات (
Sort-Object
) حسب استخدام وحدة المعالجة المركزية (CPU
) بترتيب-Descending
.
يرجى ملاحظة أنه يمكنك وضع أي من الأوامر في هذا البرنامج التعليمي في نص برمجة PowerShell وتشغيله.
يتم عرض القائمة المرتبة في وحدة التحكم، كما هو موضح أدناه.

إخراج الكائنات بتنسيق مخصص
لقد رأيت تنسيق الإخراج الأساسي لأمر Write-Output والذي يعمل بشكل جيد. ولكن إذا كنت تود ذلك، يمكنك أيضًا إخراج الكائنات بتنسيق مخصص لإضافة لمسة شخصية. يمكن أن يكون التنسيق المخصص مفيدًا عندما ترغب في عرض خصائص محددة للكائن أو تخصيص مظهر الإخراج.
لإخراج كائن بتنسيق مخصص، ستؤدي الأمر Format-Custom
مع أمر Write-Output
إلى الغرض، على النحو التالي:
لإنشاء تنسيق الإخراج المخصص، ثم قم بتوجيه إخراج أمر Format-Custom إلى Write-Output.<>
قم بتشغيل الأمر أدناه، الذي لا ينتج إخراجًا، ولكنه ينشئ كائنًا (جدول مفاتيح) يحتوي على ثلاث خصائص مع القيم المقابلة لها للإخراج.
الآن، قم بتشغيل الأمر أدناه لأداء ما يلي:
- إنشاء تنسيق مخصص (
Format-Table
) لإخراج (Write-Output
) الجدول الخاص بك ($object
). يتم تعيين الخصائصProperty1
،Property2
، وProperty3
كأعمدة. - ضبط عرض الأعمدة (
-AutoSize
) ليتناسب مع المحتوى.

بديلًا، يمكنك استخدام أمر Format-List
مع Write-Output
لإخراج الكائن كقائمة من أزواج الخاصية-القيمة.

تمرير كائن المجموعة ككيان واحد
بشكل افتراضي، يقوم Write-Output
بإرسال كل عنصر من مجموعة البيانات عبر الأنابيب بشكل منفصل، وهذه العملية تسمى التعداد. ولكن يمكنك منع هذا السلوك عن طريق إضافة المعلمة -NoEnumerate
، وتمرير كائن مجموعة ككيان واحد.
لرؤية كيفية عمل المعلمة -NoEnumerate
، اتبع الخطوات التالية:
قم بتشغيل الأوامر أدناه لأداء ما يلي:
- تعريف مصفوفة
$numbers
من واحد إلى ثلاثة (1,2,3
).
- عدد الكائنات الممررة عبر الأنابيب (
Measure-Object
). - اطبع قياس الكائن (
Write-Output $numbers
).
بدون معامل NoEnumerate
، يُرجع Measure-Object
عددًا يبلغ ثلاثة (3) ، حيث تم تعداد كل عنصر من مصفوفة $numbers
وتم تمريره عبر خط الأنابيب بشكل فردي.

الآن ، قم بتشغيل الأوامر التالية لإخراج عدد الكائنات التي تم تمريرها عبر خط الأنابيب.
ولكن نظرًا لأنك أضفت معامل -NoEnumerate
، يعامل أمر Measure-Object
الكائن ككيان واحد ، مما يعيد عددًا واحدًا (1).

إحاطة أمر
Write-Output
بعلامات القوس المستديرة (أي(Write-Output 1,2,3)
) سوف يجبر على التعداد يحدث بغض النظر عن معامل-NoEnumerate
.
إنشاء نظام قائمة والتعليمات البرمجية للإدخال
استخدام آخر رائع لأمر Write-Output
هو إنشاء نظام قائمة باستخدام نص برمجة PowerShell يطلب من المستخدم إدخال.
قم بإنشاء ملف .ps1 باستخدام محرر النصوص / الشفرة الخاص بك ، واملأ الشفرة أدناه ، واحفظ الملف. يمكنك تسمية الملف كما تريد ، ولكن اختيار هذا البرنامج التعليمي هو myoutput.ps1.
يستخدم الكود أدناه حلقة تكرارية لدعوة المستخدم باستمرار لتحديد خيار من قائمة الخيارات حتى يحدد المستخدم خيار “خروج”.
الآن، قم بتشغيل النص البرمجي (myoutput.ps1
) من المجلد العامل.
كما هو موضح أدناه، يتم عرض الرسالة المرتبطة بالاختيار الذي قمت به عند اختيار الخيارات 1، 2، أو 3. ولكن عند اختيار الخيار 4، يتم إيقاف تشغيل النص البرمجي.

عرض شاشة ترحيبية أو رسالة ترحيبية
بالإضافة إلى عرض الخيارات التي يمكن للمستخدمين اختيارها، يمكنك أيضًا عرض شاشة ترحيب أو رسالة ترحيب باستخدام Write-Output
. تعتبر شاشات الترحيب المزخرفة فكرة جيدة (مهنية ومصقولة) لنص سيناريو البرنامج النصي الخاص بك.
قم بإستبدال الكود في ملف myoutput.ps1 بالكود أدناه، الذي يقوم بإخراج شاشة ترحيب (لافتة ترحيبية) عند تشغيل البرنامج النصي.
يمكنك تخصيص شاشة الترحيب عن طريق تعديل النص وتنسيق اللافتة. يمكنك إضافة عناصر إضافية، مثل شعار أو نص، إلى شاشة الترحيب حسب الرغبة.
الآن، قم بتشغيل البرنامج النصي وشاهد كيف يبدو شاشة الترحيب الخاصة بك.

عرض شريط تقدم
عند تشغيل البرامج النصية، يساعد مؤشر التقدم في التخلص من قلق المستخدم حول ما إذا كان البرنامج النصي يعمل أم لا. يمكن أن تكون أشرطة التقدم مفيدة للإشارة إلى تقدم البرنامج النصي أو العملية الطويلة. لحسن الحظ، يمكنك باستخدام أداة Write-Output
إنشاء شريط تقدم حسب رغبتك.
افتح ملف myoutput.ps1 الخاص بك وأضف الكود أدناه إلى نهاية الكود الحالي في الملف النصي.
يستخدم الكود أدناه حلقة while
للتكرار عبر عدة خطوات. في هذا المثال، 100 خطوة. يقوم كل دورة في الحلقة بحساب النسبة المئوية للخطوات التي تم إكمالها وعرض شريط التقدم باستخدام Write-Output
.
تم إنشاء شريط التقدم باستخدام مجموعة من العمليات التالية:
*
– يكرر سلسلة محددة عددًا محددًا من المرات-
$()
– يسمح بتضمين إخراج تعبير في سلسلة.
ثم يتوقف البرنامج النصي (Start-Sleep
) لمدة 1
ثانية لمحاكاة التقدم قبل المضي قدمًا إلى الخطوة التالية.
الآن، قم بتشغيل البرنامج النصي وشاهد كيف يعمل شريط التقدم.
أدناه، يمكنك رؤية شاشة البدء مع شريط التقدم.

استنتاج
في هذا البرنامج التعليمي، رأيت كيف يمكن لـ Write-Output
بسهولة إخراج الكائنات وأنواع البيانات والتنسيقات المخصصة. علاوة على ذلك، تطرقت إلى استخدام مشغل الأنابيب لإرسال الإخراج إلى أوامر أخرى للمعالجة اللاحقة.
سواء كنت تكتب رسالة بسيطة أو مهام أتمتة معقدة ، فإن Write-Output
هو أداة لا غنى عنها لإنشاء نصوص برمجة قوية ومهنية في PowerShell.
بفضل هذا المعرفة الجديدة ، لماذا لا تكتب النصوص الناتجة إلى أنواع ملفات مختلفة مثل ملفات .txt و .xml؟ بغض النظر عن الهدف ، فإن توجيهات النصوص تكون مفيدة في حل مشاكل النظام أو التطبيقات. يمنحك Write-Output
وأمر Out-File
القوة التي لم تكن تعلم أنك بحاجة إليها.
Source:
https://adamtheautomator.com/powershell-write-output/