2.2 פאוורשל סקריפט הרצאה
תנאים ולולאות ב-PowerShell¶
כמו שאתם רואים, תנאים ולולאות ב-PowerShell הרבה יותר פשוטים בהשוואה ל-Batch:
לולאה¶
תנאי¶
$number = 10
if ($number -gt 5) {
Write-Output "Number is greater than 5"
} else {
Write-Output "Number is 5 or less"
}
- הסינטקס ב-PowerShell מאוד ברור וקל להבנה. לדוגמה:
- כדי לבדוק שוויון משתמשים ב-
-eq(שווה). - כדי לבדוק אם משהו קטן מ-
-lt, וגדול מ--gt. - השווה הגדול מ-
-ge, והשווה הקטן מ--le.
- כדי לבדוק שוויון משתמשים ב-
הצגת משתנים ב-PowerShell¶
כדי להדפיס את כל המשתנים של ה-shell, כולל משתנים גלובליים, השתמשו בפקודה:
הגדרת פונקציות ב-PowerShell¶
ב-PowerShell אפשר להגדיר פונקציות בצורה מאוד פשוטה:
# הגדרת פונקציה
function Say-Hello {
param (
[string]$name
)
Write-Output "Hello, $name!"
}
# קריאת פונקציה
Say-Hello -name "John"
- אפשר להגדיר פרמטרים לפונקציות, וכמובן להשתמש בפקודת
returnלהחזיר ערכים מתוך הפונקציה. - לאחר שהגדרתם פונקציה, ניתן לקרוא לה כמו פקודה רגילה.
סקריפטים ב-PowerShell¶
כדי לכתוב סקריפטים ב-PowerShell, יש להפעיל את PowerShell כמנהל מערכת ולשנות את הגדרות ההרצה:
- פתחו טרמינל PowerShell כמנהל.
-
השתמשו בפקודה:
-
השתמשו בפקודה
Aכדי לאשר את השינוי.
אחרי השינוי, תוכלו ליצור ולהריץ סקריפטי PowerShell בקובצי .ps1.
דוגמת סקריפט:¶
-
כדי ליצור קובץ PowerShell חדש, השתמשו בפקודה:
קבלת ארגומנטים לסקריפט:¶
כמו ב-Batch, גם כאן ניתן לקבל פרמטרים לסקריפט בצורה הבאה:
ה-$args הוא מערך שמכיל את כל הפרמטרים שהסקריפט מקבל.
שימוש ב-.NET ב-PowerShell¶
PowerShell תומך ב-.NET באופן מלא, ובכך אפשר להשתמש ב-classes ובפקודות שמסופקות על ידי .NET.
דוגמת שימוש ב-class ב-.NET להורדת HTML מאתר אינטרנט:¶
- המחלקה (קלאס) System.Net.WebClient היא מחלקה של .net, שכמותה יש עוד הרבה, ובדוגמה למעלה אנחנו משתמשי בפקודה "New-Object" כדי ליצור אובייקט ממנה. בדומה ליצרת אובייקטים בכל שפה מונחה עצמים (כמו פייתון למשל)
- ואחרכך אנחנו קוראים למתודה
DownloadString של האובייקט שניגשת לאתר אינטרנט ומחזירה את הhtml שלו.שימוש ב-System.Net.WebClient מאפשר לנו לגשת לאתרים ולהוריד נתונים בצורה נוחה ב-PowerShell.