בנוסף להיות כלי שורת פקודה, PowerShell הוא שפת תכנות של Microsoft המאפשרת לך לשלוט ולאוטומטז את המערכות שלך. PowerShell משתמשת בתחביר שונה לאופרטורים מרובה השפות התכנות.
אך, פעם אחת שתבינו את תחביר האופרטורים של PowerShell, תגלו שזה לא קשה לשימוש. אחד מהאופרטורים הנפוצים ביותר שתשתמשו בו ב-PowerShell הוא אופרטור "לא שווה" (-ne
). אופרטור זה מאפשר לך לבדוק האם שני ערכים אינם שווים זה לזה.
במאמר זה תלמדו על אופרטור "לא שווה" של PowerShell וכיצד להשתמש בו עם דוגמאות.
דרישות ראשוניות
הדרכה זו תהיה מצגת ידים. אם ברצונכם לעקוב, הוודאו שיש לכם מערכת עם PowerShell מותקן. המדריך משתמש ב-Windows 10 ו-PowerShell 7.
שימוש באופרטור "לא שווה" של PowerShell (יסודות)
בגיסט, אופרטור "לא שווה" של PowerShell (-ne
) מקבע האם ערך של שני אובייקטים אינו שווה ומחזיר ערך בוליאני בהתאם לתוצאה. אם הערכים אינם שווים, התוצאה היא נכונה
; אחרת, התוצאה היא שקר
.
אך איך ומתי משתמשים באופרטור "לא שווה" של PowerShell? הסעיפים הבאים ילמדו אתכם את יסודות "לא שווה" של PowerShell.
השוואת משתנים
אחת מהשימושים הנפוצים ביותר לאופרטור השונה של PowerShell היא להשוות שני משתנים. לדוגמה, נניח שיש לך שני משתנים, $a
ו־$b
, ואתה רוצה לראות האם הם שווים. תחביר ההשוואה הוא כדלקמן:
אם ערכי $a
ו־$b
לא שווים, אז השוואה זו תחזיר True
. אחרת, היא תחזיר False.
1. הרץ את הפקודות הבאות בקונסולת PowerShell שלך כדי ליצור את המשתנים שתשתמש בהם כדוגמאות. המשתנים $a, $b, $c, ו־$d מייצגים ערכים שונים. אתה יכול להשוות כל אחד מהערכים הללו כדי לבדוק האם הם שווים או לא.
אתה מעניק ל־$c ול־$d את אותו הערך כדי לראות כיצד האופרטור השונה של PowerShell עובד עם ערכים שווים.
2. כעת, בצע את השוואת השונה של PowerShell כדי לראות האם ערכי $a ו־$b אינם שווים.
התוצאה תחזיר True מאחר וערך $a הוא 1 וערך $b הוא 2, שאינם שווים.

3. עכשיו השווה את המשתנים $c ו־$d כדי לראות האם גם הם אינם שווים.
תראה פלט של False חזרה, כפי שמוצג בתמונה למטה, מאחר וערכי $c ו־$d שווים (3=3).

השוואת ערכים
כאשר אתה עובד עם PowerShell, לא כל העצמים שברצונך להשוות נמצאים במשתנים. במקרה זה, ניתן להשוות ערכים ישירות באמצעות אופרטור השונה של PowerShell.
לדוגמה, הפקודה למטה משווה שני ערכים ישירות באמצעות אופרטור השונה של PowerShell.
תראה ערך True חזרה, כפי שמוצג למטה מאחר והערכים אינם שווים.

בערך הערכים השווים תחזיר False
.

הסרת ערך מהמערך
האופרטור PowerShell Not Equal מחזיר תוצאת בוליאנית כדי לציין האם שני ערכים הם לא שווים. לצד פונקציה זו, האופרטור יכול גם לסנן פריטים ממערך.
לדוגמה, יש ליצור משתנה בשם $numbers
המכיל מערך של מספרים מ-1 עד 5.

לאחר מכן, יש להריץ את הפקודה הבאה כדי להחזיר את המערך למעט מספר אחד (4
).
וכעת תראה שהפקודה החזירה כל מספר במערך כמו שלא כלל מספר 4.

השוואת מחרוזות
בנוסף למספרים, ניתן גם להשתמש בהשוואת PowerShell Not Equal על מחרוזות.
1. לדוגמה, שיש לך שתי מחרוזות, "Hello" ו-"World". כדי לקבוע האם שתי המחרוזות אינן שוות, יש להריץ את הפקודה הבאה.
התוצאה היא True מכיוון ש-"Hello" אינה שווה ל-"World".

2. עכשיו נשווה את המחרוזות "Hello" ו-"hello" כדי לראות האם הן שוות.
אז תראה שהתוצאה היא False מכיוון ש-"Hello" שווה ל-"hello".

3. האופרטור של "לא שווה" ב־PowerShell אינו רגיש לתיאום רישיות. כפי שאתה רואה בשלב הקודם, "שלום" שווה ל־"hello". אך אם נדרשת רגישות לתיאום רישיות בהשוואת ערכי מחרוזות, נחליף את האופרטור -ne באופרטור -cne, המשמעות שלו אינו שווה רגיש לרישיות.
כתוצאה, "שלום" ו־"hello" כבר לא שווים לפי PowerShell.

שימוש באופרטור "לא שווה" של PowerShell בעולם האמיתי (דוגמאות)
עכשיו שהבנת את המושג הבסיסי של אופרטור "לא שווה" של PowerShell, החלקים הבאים יספקו לך חוויית שימוש מעשית בו.
ניטור מצבי שירות
A staple of Windows systems administration is monitoring the server service status. This task involves filtering out which services whose Status Is Not Running
.
לדוגמה, הרץ את פקודת ה־Get-Service
כדי להציג את כל השירותים במחשב המקומי.
אתה רואה את כל השירותים שעצרו והפעילים בפלט למטה.

כעת, כדי לסנן רק את השירותים שאינם רץ
, הרץ את הפקודה למטה והחל את האופרטור -ne
כך:
כפי שאתה רואה למטה, עמוד המצב מציג רק את השירותים שעצרו לאחר החישוב של השוואת ה־PowerShell שלא שווים.

באופן דומה, הרץ את הפקודה למטה כדי להחזיר את השירותים שהם לא עצרו
.
הפעם, אתה רואה רק שירותים שפועלים.

שילוב של PowerShell לא שווה עם אופרטור AND
מלבד ביצוע השוואה 1:1, ניתן לשלב את תנאי לא שווה של PowerShell עם אופרטור השוואה נוסף, כגון -eq
(שווה), באמצעות אופרטור -and
. שיטה זו שימושית כאשר הפריט שאתה משווה חייב לעמוד במספר תנאים.
לדוגמה, בניטור שירותי השרת בדרך כלל כולל אימות שכל השירותים האוטומטיים צריכים להיות פעילים. הריץ את הפקודה הבאה כדי לרשום את כל השירותים שבהם המצב אינו מופעל
ובהם סוג ההתחלה הוא אוטומטי
. בדוגמה זו, ערך האובייקט חייב להתאים לכל התנאים.
כעת ניתן לראות את השירותים האוטומטיים שאינם פועלים, מה שיכול לעזור לך להחליט מהם הפעולות שעליך לבצע.

הוספת לוגיקה תנאית If/Else
ניתן גם להשתמש באופרטור שאינו שווה של PowerShell בתוך הצהרות התנאי, כגון ההצהרה if/else.
לדוגמה, שירות חייב להיות פעיל ברוב המקרים אם ערך StartType שלו הוא אוטומטי. הסקריפט למטה מקבל את כל השירותים, בודק אילו שירותים אוטומטיים אינם פועלים, ומבצע את הפעולה התיקונית—להציג הודעה ולהפעיל את השירות.
הערה: השורה Start-Service $_.Name מוסרטת ולא תרוץ. פתח את ההערה אם ברצונך להריץ את הפקודה.
העתק את הקוד למטה והפעל אותו ב-PowerShell.
התוצאה מראה לך אילו שירותים אוטומטיים אינם פועלים.

מסקנה
במאמר זה, למדת על אופרטור "לא שווה" של PowerShell. גם למדת איך להשתמש בו עם דוגמאות. בנקודה זו, אתה אמור להבין טוב כיצד זה עובד.
עם הידע החדש שרכשת, כעת תוכל להשתמש באופרטור "לא שווה" בתסריטים שלך ב- PowerShell כדי לבדוק תנאים. עם זאת, שים לב שישנם גם אופרטורים נוספים להשוואה זמינים. ייתכן שתרצה לשלב אופרטורים מרובים כדי לבדוק תנאים מורכבים יותר.