كيفية استخدام أمر الخروج PowerShell والأصدقاء

هل تساءلت يومًا “ما هو أفضل طريقة لإنهاء سكريبت أو الخروج من أمر في بووشيل؟” هل ستُغلق جلسة بووشيل باستخدام أمر الخروج في بووشيل؟ كيفية إرجاع رموز خروج مخصصة؟ حسنًا، لديك الحظ!

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

فلنستعد لإنهاء بعض جلسات بووشيل وسكريبتاتها!

الشروط الأساسية

لمتابعة الشرح، تأكد من تثبيت Windows PowerShell أو PowerShell Core على جهازك. ستستخدم الأمثلة في هذا المقال بووشيل 7.1.4.

إنهاء وحدة التحكم والسكربتات باستخدام أمر الخروج في بووشيل

لنبدأ في هذا البرنامج التعليمي ونشرح أولًا الكلمة المفتاحية “exit”، واحدة من العديد من “الكلمات المحجوزة” في بووشيل. الكلمة المحجوزة هي مجموعة من الأحرف المدمجة في بووشيل تقوم بإجراء بعض الإجراءات. بالنسبة للكلمة المفتاحية “exit”، الإجراء هو إغلاق جلسة بووشيل.

فلنمارس! قم بفتح جلسة وحدة تحكم بووشيل، اكتب “exit” ثم اضغط على مفتاح Enter. ستغلق وحدة التحكم في بووشيل فورًا.

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

انسخ والصق الشيفرة أدناه في المفكرة واحفظ النص البرمجي باسم test.ps1 في الدليل C:\Temp. قم بتشغيل ملف السيناريو PowerShell عن طريق تنفيذ الأمر .\text.ps1 كما هو موضح في اللقطة أدناه. لاحظ أن PowerShell، بدلاً من إغلاق الجلسة، ينهي النص البرمجي ويعيد التحكم إلى سطر الأمر في جلسة PowerShell الحالية.

# test.ps1
Write-Host "Quick! Read this before the PowerShell session closes!!"
Start-Sleep -Seconds 2
Exit
The exit keyword stopped the script execution, but the console is still running

استقبال وتقديم التعليقات باستخدام رموز الخروج

تعد الأمر exit مفيدة في حالات تحتاج فيها البرمجة أو الوظيفة إلى تشغيل بعض الشيفرة والخروج. ومع ذلك، لا يتم الحصول على أي مؤشر على ما إذا تم تشغيل النص بنجاح أم لا.

عندما يقوم PowerShell بتشغيل الأمر الأخير في نص، يخزن النظام رمز الخروج لهذا الأمر الأخير في متغير $LASTEXITCODE .

هناك رمزين افتراضيين للخروج:

PowerShell لا تقيدك بـ 0 و 1 كرموز خروج. تتيح لك PowerShell إرجاع رموز خروج مخصصة، طالما كانت integers.

نطاق القيم لرمز الخروج exit code يعتمد على النظام. في نظام Windows ، يُسمح بأي integers موقعة بت طول 32. في نظام Unix ، يُسمح فقط ب integers إيجابية بت طول 8.

للخروج من PowerShell برمز خروج مخصص ، يمكنك توفير رمز الخروج كوسيط لكلمة المفتاح exit.

انسخ والصق الشيفرة أدناه في ملف test.ps1 الحالي وقم بتشغيل النص بالأمر .\Test.ps1. تحقق من محتوى المتغير $LASTEXITCODE. عند إخبار PowerShell بالخروج برمز خروج 55 ، قامت بذلك ، كما يمكنك رؤيته أدناه.

Function foo {
    Write-Output "This foo function will be shown"
    Exit 55 # < -- استخدام رمز خروج مخصص
}

foo
Returning a custom exit code

كسر الحلقات باستخدام Break

سيكون هناك لحظات لا يكون فيها سلوك exit مقبولًا: مثل إنهاء وظيفة. دعونا نتحقق من كيف يساعد كلمة المفتاح break.

تجعل كلمة المفتاح break PowerShell تتوقف عند حلقة. بعد break ، يستمر التنفيذ في التكرار التالي.

الفواصل مفيدة في حلقات PowerShell مثل بيانات foreach، while، do-while، و switch لأنه يمكنك التحكم في مكان توقف الكود قبل اكتماله.

لنمارس الخروج من الحلقات. في الأسفل يمكنك رؤية مقتطف من الكود مع حلقة for. ستكرر الحلقة عشر مرات إذا لم يكن هناك break داخلها. سيتم تنشيط الكلمة المفتاحية break عندما يكون المكرر يساوي ثمانية. بمجرد أن يجد PowerShell الكلمة المفتاحية break، يتوقف عن الحلقة.

for($i=1; $i -le 10; $i++) {
	if($i -eq 8) { break }
	$i
}

يمكنك أن ترى أدناه أن PowerShell يتوقف عن الحلقة عندما تكون قيمة i تساوي 8. الكود لا يذهب أبدًا إلى 9. لقد نجحت في الخروج من حلقة for بنجاح.

Breaking a for loop

توجيه تنفيذ الكود باستخدام العودة

الكلمة الرئيسية return مختلفة قليلاً عن الكلمات الرئيسية السابقة حيث لا تخرج أو تكسر الأوامر. تقوم هذه الكلمة بتوجيه تنفيذ الشيفرة. إنها تعيد التنفيذ إلى النداء الخاص بها مع السماح لك بإرجاع القيم. وليس فقط الأعداد الصحيحة، كما في exit، تفهم؟ يمكنك إرجاع أي نوع! هذه السلوكيات تجعل الكلمة الرئيسية return أكثر تنوعًا من الكلمات الرئيسية السابقة.

لنرى ذلك في العمل من خلال مثال: بناء وظيفة لتوصيل الكلمات. انسخ الشيفرة أدناه إلى جلستك في PowerShell:

function WordPairing ($a,$b) {

	return "$a" + "$b" # <-- دمج كلمتين في كلمة واحدة

}

$output = WordPairing taco cat

Write-Output "$output is a strange pairing of words."

لاحظ كيفية القيمة التي تُرجعها الوظيفة في الإخراج.

Redirecting code execution with the return keyword

توجه القيمة $output التي تم إنشاؤها بواسطة وظيفة WordPairing إلى حيث تم استدعاء $output.

الاستنتاج

في هذا الدليل، تعلمت طرقًا مختلفة لإنهاء جلسات ونصوص PowerShell. تعتمد كل طريقة على كلمة معينة. كل كلمة لها حالة استخدام محددة. عند استخدامها بشكل مناسب، تمنحك كل هذه الكلمات الرئيسية تحكمًا هائلًا في ما يفعله النص الخاص بك.

الآن بعد معرفتك بالطرق المختلفة لإنهاء جلسات PowerShell الخاصة بك، كيف تنوي تحسين نصوصك بهذه المعرفة الجديدة؟

Source:
https://adamtheautomator.com/powershell-exit/