לדלג לתוכן

2.2 פאוורשל סקריפט הרצאה

תנאים ולולאות ב-PowerShell

כמו שאתם רואים, תנאים ולולאות ב-PowerShell הרבה יותר פשוטים בהשוואה ל-Batch:

לולאה

# לולאת for
for ($i = 1; $i -le 5; $i++) {
    Write-Output "Loop iteration $i"
}

תנאי

$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, כולל משתנים גלובליים, השתמשו בפקודה:

:dir env

הגדרת פונקציות ב-PowerShell

ב-PowerShell אפשר להגדיר פונקציות בצורה מאוד פשוטה:

# הגדרת פונקציה
function Say-Hello {
    param (
        [string]$name
    )
    Write-Output "Hello, $name!"
}

# קריאת פונקציה
Say-Hello -name "John"
  • אפשר להגדיר פרמטרים לפונקציות, וכמובן להשתמש בפקודת return להחזיר ערכים מתוך הפונקציה.
  • לאחר שהגדרתם פונקציה, ניתן לקרוא לה כמו פקודה רגילה.

סקריפטים ב-PowerShell

כדי לכתוב סקריפטים ב-PowerShell, יש להפעיל את PowerShell כמנהל מערכת ולשנות את הגדרות ההרצה:

  1. פתחו טרמינל PowerShell כמנהל.
  2. השתמשו בפקודה:

    Set-ExecutionPolicy Unrestricted
    
  3. השתמשו בפקודה A כדי לאשר את השינוי.

אחרי השינוי, תוכלו ליצור ולהריץ סקריפטי PowerShell בקובצי .ps1.

דוגמת סקריפט:

$message = "hello" + " " + "world!"
$number = 5+5
echo $message
echo $number
  • כדי ליצור קובץ PowerShell חדש, השתמשו בפקודה:

    notepad script.ps1
    

קבלת ארגומנטים לסקריפט:

כמו ב-Batch, גם כאן ניתן לקבל פרמטרים לסקריפט בצורה הבאה:

$first_argument = $args[0]
$second_argument = $args[1]
echo "$first_argument, $second_argument"

ה-$args הוא מערך שמכיל את כל הפרמטרים שהסקריפט מקבל.

שימוש ב-.NET ב-PowerShell

PowerShell תומך ב-.NET באופן מלא, ובכך אפשר להשתמש ב-classes ובפקודות שמסופקות על ידי .NET.

דוגמת שימוש ב-class ב-.NET להורדת HTML מאתר אינטרנט:

$webClient = New-Object System.Net.WebClient
$webClient.DownloadString("https://example.com")

- המחלקה (קלאס) System.Net.WebClient היא מחלקה של .net, שכמותה יש עוד הרבה, ובדוגמה למעלה אנחנו משתמשי בפקודה "New-Object" כדי ליצור אובייקט ממנה. בדומה ליצרת אובייקטים בכל שפה מונחה עצמים (כמו פייתון למשל)
- ואחרכך אנחנו קוראים למתודה DownloadString של האובייקט שניגשת לאתר אינטרנט ומחזירה את הhtml שלו.
שימוש ב-System.Net.WebClient מאפשר לנו לגשת לאתרים ולהוריד נתונים בצורה נוחה ב-PowerShell.