2.1 פאוורשל בסיסי הרצאה
פתיח¶
- השפה PowerShell היא ה-shell העדכני של Windows, ונחשב לפופולרי מאוד בקרב מפתחים ומנהלי מערכת. מדובר בשפת סקריפטים מודרנית וכתיבה נוחה (לדעתי).
- השפה PowerShell היא שילוב של שפת סקריפטים (כמו Python או batch), ותכנות מונחה-עצמים (OOP), ומספק תמיכה לכל הפקודות שאנחנו מכירים מ-Batch, אך עם הרבה יותר עוצמה וגמישות.
תמיכה ב- .NET¶
- השפה PowerShell תומכת ב-.NET Framework. של מיקרוסופט.
- אם אינכם מכירים, .NET Framework. הוא אוסף של ספריות שמספקות כלים לפיתוח תוכנה, פיתוח אתרים, אפליקציות למובייל ועוד. הוא נתמך על ידי שפות תכנות רבות של מיקרוסופט כמו C#, VB.NET ו-F#, וכמובן גם PowerShell.
התממשקות עם PowerShell¶
-
ישנם מספר דרכים לפתוח את הטרמינל של PowerShell:
-
לחפש "PowerShell" בתפריט ההתחל.
- לפתוח את ה-CMD ואז להקליד את הפקודה
powershell. - להשתמש בטרמינל החדש Windows Terminal (WT).
-
לאחר שתבחרו את הדרך בה תרצו להפעיל את PowerShell, תוכלו להריץ את כל הפקודות של Batch שאתם מכירים ב-Shell החדש הזה.
-
השתמשו בפקודה
Get-Commandכדי לקבל רשימה של כל הפקודות ב-PowerShell. תוכלו לראות שהפקודות מחולקות לכמה סוגים: Function, Cmdlet, ו-Alias. נסביר את הסוגים: -
פקודת Function: סקריפט PowerShell שמבצע פעולה מסוימת.
- פקודת Cmdlet: קוד שנכתב ב-.NET (בכפוף לשפת .NET כלשהי) שמטרתו להיות פקודה ב-PowerShell.
- פקודת Alias: פקודה שמפנה לפקודה אחרת, כמו לדוגמה
echo, שהיא alias לפקודהWrite-Output. - פקודה חיצונית: קובץ הרצה שניתן להפעיל ב-PowerShell (כמו ב-Batch), התומך במשתנה PATH.
- כמו שניתן לראות, שמות הפקודות ב-PowerShell נכתבים בצורה של: Action-Name. לדוגמה:
Set-Alias,Get-Help,Set-Date.
פקודות בסיסיות שצריך להכיר¶
-
הפקודה Get-Help: מאפשרת לקבל מידע על PowerShell, על קונספטים בסיסיים, כיצד כותבים קוד, וגם מידע על פקודות. לדוגמה, כתבו את הפקודה
Get-Help echoכדי ללמוד איך להשתמש בפקודה:
-
ניתן לראות ש-
echoהיא alias של הפקודהWrite-Output. -
כל הפקודות ב-PowerShell מחזירות אובייקטים. כדי לקבל מידע על האובייקט המוחזר, השתמשו ב-
| Get-Member:
-
הפקודה
echoמחזירה אובייקט מסוג string (מחרוזת), וב-PowerShell אפשר לבצע עליו פעולות רבות. לדוגמה, ניתן להפעיל את הפעולהToUpperשתהפוך את כל האותיות לגדולות. יש גם שדות נוספים שניתן לגשת אליהם, כמוLength, שמחזיר את אורך המחרוזת:
-
יצירת משתנים ב-PowerShell:
פקודות בסיסיות ב-PowerShell¶
- קבלת רשימת קבצים ותיקיות בתיקייה הנוכחית:
- יצירת תיקייה חדשה:
- קבלת תוכנות רצות במערכת:
- עצירת תוכנה לפי שם:
שימוש ב-pipe ב-PowerShell¶
בשפה PowerShell יש תמיכה ב-pipe (|), שמאפשר להעביר את הפלט של פקודה אחת כקלט לפקודה אחרת.
- לדוגמה, לקבל את כל התהליכים הרצים, לסנן את אלה ששמם כולל את המילה "notepad", ואז לעצור אותם:
- הפקודה Where-Object דומה לפקודת find ב-Batch, אבל ב-PowerShell היא מחפשת בתוך אובייקטים ולא מחרוזות. כדי לדעת על איזה שדה לחפש, השתמשו ב-
Get-Member:
- כך, אתם יכולים למצוא את השדה Name, ולחפש את השם של התהליך. לאחר שמצאתם את התהליך, ניתן להעביר אותו לפקודה Stop-Process כדי לעצור אותו.
הסבר זה מציג את היתרונות והחוזקות של PowerShell, במיוחד בניהול תהליכים, עבודה עם אובייקטים, ותמיכה מלאה ב-.NET Framework.