پاورشل برای برنامهنویسان
@programming_tipsدرسنامه : شرطها در پاورشل
شرطها باعث میشن اسکریپت شما بر اساس شرایط مختلف تصمیم بگیره و مسیر اجرای متفاوتی رو انتخاب کنه. توی پاورشل پرکاربردترین ساختارهای شرطی if, elseif, else و همچنین switch هستن.
۱. دستور if
دستور if سادهترین شکل شرطه. شما یک شرط (شرط منطقی) مینویسید و اگر درست بود، دستورات داخل بلوک اجرا میشه:
$age = 20
if ($age -ge 18) {
Write-Output "You are an adult"
}
اینجا شرط $age -ge 18 بررسی میشه. اگر سن بزرگتر یا مساوی ۱۸ باشه، متن چاپ میشه.
۲. دستور if ... else
گاهی میخوایم اگر شرط برقرار نبود، یک مسیر جایگزین اجرا بشه. اینجا از else استفاده میکنیم:
$age = 15
if ($age -ge 18) {
Write-Output "You are an adult"
}
else {
Write-Output "You are underage"
}
۳. دستور if ... elseif ... else
وقتی چندین حالت مختلف وجود داره، میشه از elseif استفاده کرد. این دستور پشت سر هم چندین شرط رو بررسی میکنه:
$score = 75
if ($score -ge 90) {
Write-Output "Excellent"
}
elseif ($score -ge 70) {
Write-Output "Good"
}
elseif ($score -ge 50) {
Write-Output "Pass"
}
else {
Write-Output "Fail"
}
اینجا اول بررسی میکنه آیا نمره بالای ۹۰ هست یا نه. اگر نبود میره سراغ شرط بعدی، و همینطور ادامه میده. اگر هیچ شرطی درست نبود، میره سراغ else.
۴. دستور switch
وقتی بخوایم مقدار یک متغیر رو با چند مقدار ثابت مقایسه کنیم، استفاده از switch خیلی خواناتر و سادهتره:
$day = "Monday"
switch ($day) {
"Monday" { Write-Output "Start of the week" }
"Friday" { Write-Output "Weekend is near" }
"Saturday" { Write-Output "Weekend!" }
default { Write-Output "Regular day" }
}
در اینجا:
- اگر مقدار
$dayبرابر"Monday"باشه، همون بخش اجرا میشه. - اگر هیچکدوم از گزینهها درست نبود، بخش
defaultاجرا میشه.
۵. نکات مهم
- شرطها همیشه باید یک نتیجه بولی (
$trueیا$false) برگردونن. - در
ifمیشه از عملگرهای مقایسهای استفاده کرد مثل: -eq(برابر است)-ne(برابر نیست)-gt(بزرگتر)-lt(کوچکتر)-ge(بزرگتر یا مساوی)-le(کوچکتر یا مساوی)- در
switchمیشه چندین مقدار برای یک حالت نوشت.
🔑 خلاصه اینکه:
ifبرای بررسی یک شرط.if ... elseبرای دو حالت.if ... elseif ... elseبرای چندین حالت متوالی.switchبرای مقایسهی یک مقدار با گزینههای مختلف.