פוורשל הוא שפת תסריטות עוצמתית למספר סיבות. אחת מהסיבות היא התמיכה שלו בלוגיקה תנאית, שיכולה לעזור לך לשדרג את התסריטים שלך בפוורשל ולהפוך אותם ליעילים ויעילים יותר. במאמר הזה, אני אלמד לך איך להשתמש בלוגיקה תנאית של If, Else ו-Elseif ואסביר איך זה יכול לעזור לך ככותב תסריטים של פוורשל.
איך להשתמש בהצהרת התנאי של פוורשל
הצהרות If בפוורשל משמשות לביצוע ביצוע תנאי של קוד. הן מאפשרות לך לבדוק תנאי ולבצע בלוקים שונים של קוד בהתאם לזה אם התנאי מעריך ל-true או ל-false.
בואו נתחיל עם שני דוגמאות המראות כיצד להשתמש בהצהרות התנאי של פוורשל.
דוגמה 1: בדיקה אם מספר הוא חיובי או שלילי
בדוגמה הבאה, יש לנו משתנה $number המוגדר ל-10. ההצהרה של If בודקת אם ערך המשתנה $number גדול מ-0 בעזרת המפעיל -gt.
- כאשר התנאי הוא true, היא מבצעת את הבלוק של קוד בתוך הסוגריים המסולסלים הראשונים, שבמקרה זה מדפיס "המספר הוא חיובי".
- כאשר התנאי הוא false, היא ממשיכה אל בלוק ה-Elseif ובודקת אם המספר קטן מ-0 בעזרת המפעיל -lt.
- אם ה条件 הראשונה היא נכונה, היישום מבצע את הקוד בתוך הקבוצה השנייה של הפסימלים, ומדבר "המספר הוא שלילי."
- אם שני ה条件ים האלה הם שקרים, היישום מבצע את הקוד בתוך האחרי חלק, ומדבר "המספר הוא אפס."
$number = 10 if ($number -gt 0) { Write-Host “The number is positive.” } elseif ($number -lt 0) { Write-Host “The number is negative.” } else { Write-Host “The number is zero.” }

דוגמה 2: בדיקה אם קיים קובץ
בדוגמה הבאה, יש לנו משתנה, $file, שנתווך לנתיב של קובץ. ההצעה אם משתמשת בפיצול Test-Path כדי לבדוק אם קובץ קיים.
- אם התנאי מועדף לנכון, זה אומר שהקובץ קיים, היישום מבצע את הקוד בתוך הקבוצה הראשונה של הפסימלים, ומדבר "הקובץ קיים."
- אם התנאי הוא שקר, היישום מבצע את הקוד בתוך האחרי חלק, ומדבר "הקובץ אינו קיים."
$file = “C:\path\to\file.txt” if (Test-Path $file) { Write-Host “The file exists.” } else { Write-Host “The file does not exist.” }

אלה היו רק שתי דוגמאות בסיסיות של איך מדינים מוגבלים פעול ב PowerShell. בואו נעבור לאחרי ההצעה.
איך להשתמש בהצעה Else עם ההצעה If ב PowerShell
בפורمל פשוט להשתמש בביטוי אחרתביחד עם ביטוי אםכדי ליצור הגיון תנאים. זה מאפשר לך ל指定 אסטרקט קוד שינהגה כאשר התנאים בביטוי אםהם שונים.
תנו לי שתי דוגמאות שמראות איך להשתמש בביטויים אחרתבפורמל פשוט.
דוגמא 3: בדיקה אם משתנה הגדולה ממספר
בדוגמה הזו, אנחנו עושים מספר בדיקות:
- הביטוי אםבדוגמה בודק האם המשתנה $number גדולה מ-10.
- אם כן, המסר "המספר גדול מ-10" מוצג.
- אם המשתנה אינה מגיעה לתנאים, האסטרקט אחרתמוריד ומסר "המספר אינו גדול מ-10" מוצג.
$number = 5 if ($number -gt 10) { Write-Host “The number is greater than 10.” } else { Write-Host “The number is not greater than 10.” }

דוגמא 4: שוואה של ערך של משתנה עם מילה
בדוגמה הזו, הביטוי אםשווה את הערך של המשתנה $user עם המילה "John".
- אם הם איונים, המסר "ברוכים הבאים, John!" מוצג.
- אם המשתנה אינה מגיעה לתנאים, במשמעות שערך של $user אינו "John", אסטרקט אחרתמוריד ומסר "אין גישה. אינך John." מוצג.
$user = “John” if ($user -eq “John”) { Write-Host “Welcome, John!” } else { Write-Host “Access denied. You are not John.” }

ההבדל בין הצהרת If והצהרת Else מתגלה בתנאים שהן מעריכות והפעולות הבאות שהן מבצעות.
- הצהרת If בודקת תנאי ומבצעת קוד אם התנאי נכון.
- הצהרת Else מספקת בלוק אלטרנטיבי של קוד שיש לבצע כאשר התנאי בהצהרת ה-If אינו נכון. אם התנאי בהצהרת ה-If נכון, הבלוק של Else לא ירוץ.
לסיכום, הצהרת If מאפשרת לך לבצע קוד בהתאם לתנאי מסוים. הצהרת Else מספקת אפשרות גיבוי כאשר התנאי אינו נכון. על ידי השתמשות בהצהרות אלו ביחד, אפשר ליצור לוגיקה גמישה ואיכותית יותר בתסריטי PowerShell שלך.
איך להשתמש בהצהרות PowerShell ElseIf
הצהרות ElseIf משמשות ליצירת תנאי שבודק אם ההצהרה הקודמת של If או כל הצהרות ElseIf קודמות מעריכות 'שקר'. הצהרות ElseIf מאפשרות לך לבדוק מספר תנאים ולבצע בלוקי קוד שונים בהתאם למערכת התנאים האלו. ההצהרה ElseIf עשויה להיות תועלתית במיוחד כאשר ישנם יותר משני תוצאות.
להלן שני דוגמאות שמראות את שימוש בהצהרות ElseIf ב- PowerShell.
דוגמה 5: בדיקת טווח מספרים
בדוגמה זו, הקוד מביט בערך של המשתנה $number ומבצע בלוקים קוד שונים לפי תוך איזור המספר.
- אם המספר פחות מ-10, התנאי הראשון נכון, והמסר המתאים מוצג.
- אם לא, אנחנו בודקים את התנאי הבא בעזרת ה声明 ElseIf. כשהמספר בין 10 ל-19 (כולל), התנאי השני נכון, והמסר המתאים מוצג.
- אם אף אחד מהתנאים הקודמים לא נכון, בלוק Else מבצע, ומצג מסר שמראה שהמספר הוא 20 או יותר.
$number = 25 if ($number -lt 10) { Write-Host “The number is less than 10.” } elseif ($number -ge 10 -and $number -lt 20) { Write-Host “The number is between 10 and 19.” } else { Write-Host “The number is 20 or greater.” }

דוגמה 6: בדיקת אורך של משתנה טקסטית
בדוגמה זו, הקוד בדיקה את אורך של המשתנה $name וקבע את הקטגוריה שלה בהתבסס על אורך זה.
- כשהשם מעבר ל-10 תווים, התנאי הראשון נכון, והמסר המתאים מוצג.
- כשהתנאים הקודמים לא נכונים, אנחנו בודקים את התנאים הבא בעזרת ה声明 ElseIf. אם השם מעבר ל-5 תווים אך לא ל-10, התנאי השני נכון, והמסר המתאים מוצג.
- אם אף אחד מהתנאים הקודמים לא נכון, בלוק Else מבצע ומצג מסר שמראה שהשם 5 תווים או פחות.
$name = “John” if ($name.Length -gt 10) { Write-Host “The name is longer than 10 characters.” } elseif ($name.Length -gt 5) { Write-Host “The name is between 6 and 10 characters.” } else { Write-Host “The name is 5 characters or shorter.” }

בסה"כ, 声明 ElseIf בPowerShell מציבים תנאים לבדיקה במקרה שתנאים קודמים אינם נכונים. הם מספקים דרך למידבק מספר תנאים שונים ולבצע בלוקים קוד בהתאמה לכך.
כיצד להשתמש באופרטורים AND/OR באמצעות הצהרות If ב-PowerShell
ב-PowerShell, "AND" ו-"OR" הם אופרטורים לוגיים המשמשים לשלב תנאים מרובים בהצהרות תנאי כדי לשלוט בזרימת הסקריפט שלך. ניתן להשתמש בהם עם הצהרות If כדי לבדוק תנאים מרובים בו זמנית:
אני אספק לך שני דוגמאות על מנת להראות את שימושם ולהדגיש את ההבדלים ביחס להצהרות IfElse.
דוגמה 7: שימוש באופרטור AND
תחשוב שתרצה להשתמש ב-PowerShell כדי לבדוק האם משתמש הינו מנהל והאם החשבון שלו פעיל כעת. ניתן להשתמש באופרטור AND כדי לבדוק את שתי התנאים בו זמנית.
בדוגמה זו, הסקריפט בודק אם שני המשתנים $isAdministrator ו-$isAccountActive הם אמיתיים. אם שני התנאים הם אמיתיים, הסקריפט מדפיס הודעה המציינת כי המשתמש הינו מנהל עם חשבון פעיל. אחרת, הוא ידפיס הודעה המציינת כי המשתמש אינו מנהל או כי החשבון שלו לא פעיל.
$user = “John” $isAdministrator = $true $isAccountActive = $false if ($isAdministrator -and $isAccountActive) { Write-Host “$user is an administrator with an active account.” } else { Write-Host “$user is not an administrator, or their account is inactive.” }

דוגמה 8: שימוש באופרטור "OR"
בואו נאמר שאתה רוצה לבדוק אם שרת פועל על Windows Server 2016 או Windows Server 2019. עם PowerShell, אתה יכול להשתמש במשפט הOR כדי להעריך את התנאים האלה.
בדוגמה הזו, הסקripט משתמש במשפט הOR כדי לבדוק האם המשתנה $osVersion שווה ל-“Windows Server 2016” או “Windows Server 2019”. אם התנאים ניתן להעריך לאמת, הוא ידפיס מסר שמראה שהשרת מופעל על מערכת ההפעלה מסupported. אחרת, הוא ידפיס מסר שמראה שהשרת מופעל על מערכת ההפעלה לא מסupported.
$server = “Server01” $osVersion = “Windows Server 2012” if ($osVersion -eq “Windows Server 2016” -or $osVersion -eq “Windows Server 2019”) { Write-Host “$server is running a supported operating system.” } else { Write-Host “$server is running an unsupported operating system.” }

דוגמה 9: שוואה עם הגדרות IfElse
המשפטים AND ו-OR מספקים דרך קצרה להעריך מספר תנאים בו-זמנית. הם שונים מהIfElse בכך שהאחת מההגדרות האלה מעריכה רק תנאים אחד בזמן אחד. אם התנאים בIfElse ניתן להעריך לאמת, הוא יבצע את אזור הקוד הקשור לIf הראשוני. אחרת, הוא יבצע את אזור הקוד הקשור לElse הראשוני.
כדי להציג זאת, בואו נשנה את דוגמה 1 כך שתשתמש בהצהרת IfElse. בדוגמה ששונתה זו, התסריט בודק תחילה אם המשתמש הוא מנהל. אם זה נכון, הוא מבצע בדיקה האם החשבון פעיל. בהתאם להערכת כל תנאי, הוא מבצע בלוקים שונים של קוד.
$user = “John” $isAdministrator = $true $isAccountActive = $false if ($isAdministrator) { if ($isAccountActive) { Write-Host “$user is an administrator with an active account.” } else { Write-Host “$user is an administrator, but their account is inactive.” } } else { Write-Host “$user is not an administrator.” }

שימוש בשיטה זו מאפשר שליטה מדויקת יותר על זרימת התסריט. אך, זה יכול לגרום לבלוקי קוד מקוננים ולמורכבות מוגברת בהשוואה לשימוש באופרטורים לוגיים כמו "וגם" ו"או".
כיצד להשתמש במחרוזות PowerShell בתוך הצהרות If
בשפת PowerShell, מחרוזות משמשות ליצירת מחרוזות מרובות שורות. הן שימושיות כאשר יש עסק בבלוקים גדולים של טקסט, או כאשר יש צורך בשמירה על פורמט.
מחרוזות, כאשר משתמשים בתוך הצהרות If, יכולות להשוות ערך מחרוזת לערך מחרוזת מרובה שורות. הנה תחביר השימוש במחרוזות בתוך הצהרות PowerShell If:
if ($string -eq @’ Multi-line string ‘@) { # Code to execute if the condition is true } else { # Code to execute if the condition is false }
אני אתן לך שני דוגמאות כדי לעזור לך להבין טוב יותר איך להשתמש במחרוזות בתוך הצהרות If.
דוגמה 10: בדיקה עבור הודעה מסוימת
נניח שיש לנו סקריפט PowerShell שמבקש מהמשתמש קלט, ואנחנו רוצים לבדוק האם המשתמש הזין הודעה ספציפית, כמו "שלום, עולם!". נוכל להשתמש ב-מחרוזת כאןבתוך הצהרת if כדי להשוות את קלט המשתמש לעודף המצופה.
בדוגמה הבאה, הסקריפט מבקש מהמשתמש להזין הודעה, ואנו שומרים את הקלט במשתנה $userInput. ההצהרת if משווה אז את קלט המשתמש לעודף המצופה באמצעות מחרוזת כאן. אם הקלט תואם את ההודעה המצופה, הוא מציג את ההודעה "המשתמש הזין את ההודעה הנכונה"; אחרת, הסקריפט מציג "המשתמש הזין הודעה שונה."
$userInput = Read-Host “Enter a message” if ($userInput -eq @’ Hello, world! ‘@) { Write-Host “User entered the correct message.” } else { Write-Host “User entered a different message.” }

דוגמה 11: השוואת בלוק סקריפט
הנה דוגמה נוספת שבה אנו רוצים להשוות בלוק סקריפט עם בלוק קוד מוגדר מראש. נוכל להשתמש במחרוזות כאן כדי להגדיר את הבלוק הסקריפט ולהשוות אותו בתוך הצהרת If.
בדוגמה זו, יש לנו שני בלוקי סקריפט, $predefinedCode ו-$userCode. אנו רוצים לבדוק האם קוד המשתמש תואם לקוד המוגדר מראש. על ידי שימוש במחרוזות כאן כדי להגדיר את בלוקי הסקריפט, אנו יכולים להשוות אותם בתוך הצהרת If.
אם קוד המשתמש תואם לקוד המוגדר מראש, הוא מציג את ההודעה "קוד המשתמש תואם לקוד המוגדר מראש"; אחרת, הוא מציג "קוד המשתמש שונה מהקוד המוגדר מראש."
$predefinedCode = { Write-Host “This is some code.” Write-Host “It does something.” } $userCode = { Write-Host “This is some code.” Write-Host “It does something.” } if ($userCode -eq $predefinedCode) { Write-Host “The user code matches the predefined code.” } else { Write-Host “The user code differs from the predefined code.” }

כיצד להשתמש בחיבור בתוך הצהרות If
בפורצה החשמלית PowerShell, אתה יכול להצטרף מחרוזות בעזרת המנהל ה算术י '+'. כדי להשתמש בהצטרפת בתוך הצעדים של אם, אתה מפעיל מחרוזת חדשה על-ידי הצטרפת מספר מחרוזות משתנות או מונחים.
הנה שתי דוגמאות לצורך השימוש בהצטרפת בפורצה החשמלית PowerShell אם:
דוגמה 12: הצטרפת משתנות מחרוזת
בדוגמה הזו, מוגדרות שתי משתנות מחרוזת, $firstName ו- $lastName. האם מבחינה אם שתי המשתנות האלה מקבלות ערכים (למשל, הן אינן מחרוזות ריקות).
- אם שני התנאים האלה ממש נכונים, אנחנו מצטרפים את שמו הראשון ושמו השחרור בעזרת מנהל ה算术י +, ואנחנו אוחסים את התוצאה במשתנה $fullName. אחר כך, אנחנו מציגים את שמו המצטרף המלא בעזרת הפקיטה Write-Host.
- אם שמו הפרטי או שם המשפחה חסר, נראה שבלוק else ירוץ ויציג הודעה מתאימה.
$firstName = “John” $lastName = “Doe” if ($firstName -ne ” -and $lastName -ne ”) { $fullName = $firstName + “ “ + $lastName Write-Host “Full Name: $fullName” } else { Write-Host “First name or last name is missing.” }

דוגמה 13: שרשור מחרוזות קבועות
בדוגמה השנייה זו, מוגדרים שלושה משתנים: $greeting עם הערך "שלום", $name עם הערך "אליס" ו-$age עם הערך 30. ההצהרת if בודקת האם המשתנה $name מכיל ערך באמצעות שיטת IsNullorEmpty().
- אם נכון, אנו יוצרים הודעה ששוררת את הברכה, השם והגיל באמצעות אופרטור ה+ . אנו שומרים את ההודעה התוצאה במשתנה $message ואז מציגים אותו באמצעות הפקודה Write-Host.
- אם השם חסר (מחרוזת ריקה), בלוק הelse ירוץ ויציג הודעת שגיאה מתאימה.
$greeting = “Hello” $name = “Alice” $age = 30 if ([string]::IsNullorEmpty($name) -eq $false){ $message = $greeting + “, “ + $name + “! Your age is “ + $age + “.” Write-Host $message } else { Write-Host “Name is missing.” }

בסופו של דבר, שתי הדוגמאות האלו מראות איך פעולות השרשור מאפשרות לך לשרשר מחרוזות באופן דינמי בהתבסס על תנאים מסוימים.
איך להשתמש במחרוזות חיבור בהצהרות If
מחרוזות החיבור משמשות בדרך כלל להקים חיבורים למסדי נתונים או מערכות חיצוניות אחרות. מחרוזות אלה מכילות מידע על השרת, שם מסד הנתונים, אישורים ופרמטרים אחרים הנדרשים להקמת החיבור.
בהצהרות If, ניתן להשתמש במחרוזות חיבור כדי להפעיל בלוקי קוד מסוימים בהתאם להצלחה או כשלון של חיבור. הנה שני דוגמאות המדגימות את השימוש במחרוזות חיבור בהצהרות If ב-PowerShell:
דוגמה 14: בדיקת חיבור למסד נתונים
בדוגמה זו, אנו מגדירים מחרוזת חיבור ($connectionString) המציינת את שם השרת, שם המסד והאישורים. לאחר מכן, אנו יוצרים אובייקט SqlConnection באמצעות מחרוזת החיבור. בתוך בלוק הניסיון, אנו מנסים לפתוח את החיבור באמצעות $connection.Open().
- אם החיבור הוא מוצלח, בלוק הקוד מבוצע תחת בלוק הניסיון, מראה חיבור מוצלח.
- אם מתרחשת חריגה (כלומר, החיבור נכשל), בלוק הקוד מבוצע תחת בלוק התפיסה, מראה חיבור נכשל.
# Define the connection string $connectionString = “Server=server_name;Database=db_name;User Id=user_id;Password=password;" # Create a SqlConnection object using the connection string $connection = New-Object System.Data.SqlClient.SqlConnection($connectionString) # Attempt to establish the connection try { $connection.Open() # Connection successful Write-Host “Connected to the database.” # Perform additional operations on the database if needed # Close the connection $connection.Close() } catch { # Connection failed Write-Host “Failed to connect to the database.” }

דוגמה 15: בדיקת חיבור רשת
בדוגמה השנייה זו, אנו מגדירים מחרוזת חיבור ($connectionString) המציינת את שם השרת ומספר הפורט. לאחר מכן, אנו יוצרים אובייקט TcpClient באמצעות מחרוזת החיבור. בתוך בלוק הניסיון, אנו מנסים להקים חיבור לשרת באמצעות $tcpClient.Connect(”שם_השרת”, 1234).
- אם החיבור הוא מוצלח, בלוק הקוד מבוצע תחת בלוק הניסיון, מראה חיבור מוצלח.
- אם קורה העדף או מקרה של כשלון בחיבוק, אזור הקוד מובצע תחת תוך אזור ה catch, ומראה חיבוק כשלון.
# Define the connection string $connectionString = “Server=server_name;Port=1234;" # Create a TcpClient object using the connection string $tcpClient = New-Object System.Net.Sockets.TcpClient # Attempt to establish the connection try { $tcpClient.Connect(”server_name”, 1234) # Connection successful Write-Host “Connected to the server.” # Perform additional operations if needed # Close the connection $tcpClient.Close() } catch { # Connection failed Write-Host “Failed to connect to the server.” }

הדוגמאות הקלים האלה מנבאות בחיבוק מצליח אם אין העדפים. במקרים של העולם האמיתי, חשוב לטפל בהעדפים באופן מתאים. צריך להשתמש במערכות טיפול בשגיאות ובמנגנונים אמינות נוספים על פי הדרישות הספציפיות של חיבוקך.
איך להשתמש בהגדרות Break ו Continue בתוך הגדרה If
ב PowerShell, ה Break וה Continue מועמדים לשליטה בזרימת הביצוע בתוך לולאות ומערכות החל והמסיימות. בעוד Break מאפשר לך לצאת מהלולאה או מערכת החל והמסיימות, Continue מאפשר לך לדלוף מההתהליך הנוכחי ולעבור להתהליך הבא.
למרות שההגדרות האלה נוצצות בדרך כלל בתוך לולאות, ניתן גם להשתמש בהן בתוך הגדרה If על מנת להשיג התנהגות ספציפית. בואו נבדוק איך להשתמש ב Break ו Continue בתוך הגדרות If עם שתי דוגמאות קלות להביט.
מדגם 16: שימוש בעצם הפסקה במשפט אם
במדגם הזה, יש לנו מערך של מספרים מ1 עד 10. אנחנו משתמשים בלול הForeach כדי להיות מסווה על כל מספר. בתוך הלול, אנחנו בדוקים אם המספר הנוכחי זהה ל-6.
- אם כן, אנחנו מציגים מסר ואז משתמשים בעצם הפסקה
- כדי לצאת מהלול.
- אם המספר אינו זהה ל-6, אנחנו פשוט מציגים את המספר הנוכחי.
$numbers = 1..10 foreach ($number in $numbers) { if ($number -eq 6) { Write-Host “Found the number 6. Exiting the loop.” break } Write-Host “Current number is: $number” }

כשהלול מוצא את המספר 6, הוא יוצא מהלול והתוכנית ממשיכה לקטע הקשרים הבאים.מדגם 17: שימוש בעצם הממשך במשפט אם
במדגם הזה, שוב יש לנו מערך של מספרים מ1 עד 10. אנחנו משתמשים בלול Foreach כדי להיות מסווה על כל מספר. ראשית, אנחנו בדוקים אם המספר הנוכחי הוא 3 או 7.
- אם אמת, אנחנו מציגים מסר ואז משתמשים בעצם הממשך Continue כדי לדלוף על ההתבצעה הנוכחית ולעבור להתבצעה הבאה.
- אם המספר אינו 3 או 7, אנחנו מציגים את המספר הנוכחי. הלול ימשיך עד שאנחנו מודדים את כל המספרים.
$numbers = 1..10 foreach ($number in $numbers) { if ($number -eq 3 -or $number -eq 7) { Write-Host “Skipping the number $number” continue } Write-Host “Current number is: $number” }

בשני המדגמים האלה, השתמשנו במשפטים If כדי לבצע פעולות מוגבלות על פי תנאים ספציפיים. העצם הממשך Break נתן לנו את האפשר
איך להשתמש בטבלאות גיבובים בתוך הצהרות If
ב-PowerShell, ניתן להשתמש בטבלאות גיבובים בתוך הצהרות If כדי לבצע בדיקות תנאי על פי זוגות מפתח-ערך. טבלאות הגיבובים הן אוסף של זוגות מפתח-ערך שבו כל מפתח הוא ייחודי.
כאן שני דוגמאות המציגות כיצד להשתמש בטבלאות גיבובים בתוך הצהרות If ב-PowerShell.
דוגמא 18: בדיקה האם מפתח ספציפי קיים בטבלא גיבובים
בדוגמה זו, יש לנו טבלא גיבובים בשם $myHashtable עם שלושה זוגות מפתח-ערך. ההצהרה If בודקת האם המפתח "גיל" קיים בטבלא באמצעות שימוש בשיטת ContainsKey(). אם המפתח קיים, היא מדפיסה הודעה שאומרת שהגיל קיים; אחרת, היא מדפיסה הודעה שאומרת שהגיל אינו קיים.
# Create a hashtable $myHashtable = @{ “Name” = “John” “Age” = 30 “City” = “New York” } # Check if a specific key exists in the hashtable if ($myHashtable.ContainsKey(”Age”)) { Write-Host “Age is present in the hashtable.” } else { Write-Host “Age is not present in the hashtable.” }

דוגמא 19: בדיקה האם ערך ספציפי קיים בטבלא גיבובים
בדוגמה זו, שוב יש לנו את אותה טבלא גיבובים בשם $myHashtable. ההצהרה If בודקת האם הערך "ניו יורק" קיים בטבלא באמצעות שימוש בשיטת ContainsValue(). אם הערך קיים, היא מדפיסה הודעה שאומרת שהעיר היא ניו יורק; אחרת, היא מדפיסה הודעה שאומרת שהעיר אינה ניו יורק.
# Create a hashtable $myHashtable = @{ “Name” = “John” “Age” = 30 “City” = “New York” } # Check if a specific value exists in the hashtable if ($myHashtable.ContainsValue(”New York”)) { Write-Host “The city is New York.” } else { Write-Host “The city is not New York.” }

כיצד להשתמש במערכים בהצהרות If
בפוערשל, אנחנו יכולים להשתמש במערך באם מקרים כדי לבדוק את מצבים מסוימים ולבצע פעולות ספציפיות בהתבסס על המצבים האלה. הנה שני דוגמאות שמראות את השימוש במערכות באם מקרים.
דוגמא 20: בדיקה אם מערך מכיל ערך מסויים
בדוגמה הזו, יש לנו מערך בשם $numbers שמכיל רצף של מספרים. האם מקרית מבדיקה אם המערך מכיל את הערך '3' בעזרת המבנה -contains. אם התנאי נכון, היא תוצא את "המערך מכיל את הערך 3." אחרת, היא תוצא "המערך אינו מכיל את הערך 3."
# Define an array of numbers $numbers = 1, 2, 3, 4, 5 # Check if the array contains a specific value, e.g., 3 if ($numbers -contains 3) { Write-Host “The array contains the value 3.” } else { Write-Host “The array does not contain the value 3.” }

דוגמא 21: בדיקה אם מערך ריק
בדוגמה הזו, יש לנו מערך ריק בשם $emptyArray. האם מקרית מבדיקה אם מספר האובייקטים במערך הוא שווה לאפס. אם התנאי נכון, היא תוצא את "המערך ריק." אחרת, היא תוצא "המערך אינו ריק."
# Define an empty array $emptyArray = @() # Check if the array is empty if ($emptyArray.Length -eq 0) { Write-Host “The array is empty.” } else { Write-Host “The array is not empty.” }

איך להשתמש בהפעלות Switch בפוערשל
בפוערשל, הSwitch מעבדה מספקת דרך לבצע פילול תנאים מבוססים על הערך של משתנה או בעיקר על ביטוי. היא מאפשרת לך להשוות ערך יחיד למספר ערכים שונים ולבצע את האותות הקודמות של קטגוריות משתנות תלויות בהתאמה.
הנה הסבר על איך להשתמש בSwitch בפוערשל עם שתי דוגמאות קלות להעמת.
דוגמא 22: בדיקה של ימים בשבוע
בדוגמה הזו, יש לנו משתנה $day שיהיה אותו יום שברגע המודע. הSwitch מסתכלת על ערך של $day בהשוואה למקרים שונים באמצעות תווים תואר "יום שלישי," "יום רביעי," וכן הלאה.
- אם קיים התאמה, הסקript מבצע את האזור הקודם המתאים.
- אם אין התאמה, הסקript מבצע את האזור הברירת מחדל. כאן, היוצא יהיה "זה התחילת השבוע!"
$day = (Get-Date).DayOfWeek switch ($day) { “Monday” { Write-Host “It’s the start of the week!” } “Tuesday” { Write-Host “It’s Tuesday!” } “Wednesday” { Write-Host “It’s the middle of the week!” } “Thursday” { Write-Host “It’s almost Friday!” } “Friday” { Write-Host “It’s finally Friday!” } Default { Write-Host “It’s the weekend!” } }

דוגמא 23: קטגוריזציה של מספרים
בדוגמה השנייה, יש לנו משתנה $number עם ערך 42. הSwitch מסתכלת על ערך של $number בהשוואה למקרים שונים בעזרת תווים תואר. הקטגוריה הראשונה בודקת האם המספר פחות מאפס, השנייה בודקת האם הוא יותר מאפס, והאזור הברירת מחדל מתרגל אם אין קטגוריות אחרות שמתאמות. כאן, היוצא יהיה "מספר חיובי."
$number = 42 switch ($number) { { $_ -lt 0 } { Write-Host “Negative number” } { $_ -gt 0 } { Write-Host “Positive number” } Default { Write-Host “Zero” } }

בשני הדוגמאות האלה, אתה יכול להתאים את התוך הקוד בתוך כל מקרה לביצוע כל פעולה רצויה בהתאם לתנאים המתאימים. הביטוי Switch הוא בניין חזק בPowerShell שמספק דרך אלגנטית לטפל במספר תנאים על מנת לבצע תוך קוד בלוקים.
PowerShell והיגיון תנאים: סיכום
בסה"כ, הביטויים If והבניינים הקשורים אליהם מספקים כלים חזקים ליישם היגיון תנאים בתסריטים PowerShell. If מהותם חיונית לביצוע בצע תנאים מונחים מפני שהם מאפשרים לך לבדוק תנאים ולבצע את בלוקים הקוד שונים בהתאם לאם התנאים מועדבים לאמת או שקר.
הדוגמאות שאני סיפקתי במאמר הזה הראו איך ביטויים If בPowerShell יכולים להיות משמשים לבדוק אם מספר הוא חיובי או שלילי, או אם קיים קובץ. אך סיפרתי על הרבה יותר טרכים להיגיון תנאים במאמר הזה על מנת לעזור לך להפוך לסקרטן טוב יותר של PowerShell. המידע כאן היה די צפוף, אז הנה מה שעליך לזכור.
- Else משמשים במיזוג עם ביטויים If כדי ליצור היגיון תנאים, מעניקים את אפשרות הגיבוי כשהתנאים אינם מוגדלים.
- ElseIf גם יכולים להיות משמשים ליצור תנאים שמבדקים רק אם ביטויים If או <di
- הפעולה הלוגית, כמו למשל "ו-" (AND) או "או-" (OR), מאפשרת לשלב תנאים מרובים במשפטי אם כדי לשלוט בזרימת התסריט. גם שרשראות כאן אפשר להשתמש בהן בתוך משפטי אם כדי להשוות ערכי שרשראות לטקסט רב-קווים.
- החיבור של שרשראות באמצעות המפעיל '+' מאפשר גם לשלב שרשראות באופן דינמי על סמך תנאים ספציפיים בתוך משפטי אם.
- משפטי חיבור משמשים לעתים קרובות במשפטי אם כדי לבצע פעולות קוד באופן מותנה, בהתאם להצלחתם או כישלונם של חיבורים למסד נתונים או למערכות חיצוניות.
- הפסקה והמשך מספקות שליטה על ביצוע לולאות והחלפה, וניתן להשתמש בהן בתוך משפטי אם כדי להשיג התנהגות ספציפית.
- גם טבלאות חסות ומערכים יכולים לשמש במשפטי אם כדי לבדוק תנאים מסוימים ולבצע פעולות על סמך תנאים אלה.
- לבסוף, פקודת החלפה מאפשרת ענפים מותנים על סמך ערכו של משתנה או ביטוי, ומאפשרת ביצוע של בלוקי קוד שונים בהתאם להתאמה.
תודה שקראתם מדריך מפורט זה על משפטי PowerShell אם, אתם מוזמנים לשאול שאלות בכל עת בערכת השאלות והתשובות למטה!