2.3 פאוורשל מתקדם הרצאה
בהרצאה נלמד כיצד ליצור cmdlet ו - class משלנו בpowershell
שלבים ליצירת Cmdlet ב-PowerShell¶
- יצירת קובץ Module: יצירת קובץ PSM1 שמכיל את הפונקציונליות של ה-Cmdlet.
- הגדרת פונקציה עם קישוטים (Attributes): הגדרת הפונקציה עם פרמטרים וקישוטים שמאפשרים להעביר נתונים לפונקציה.
- ייבוא המודול לפאוורשל: ייבוא המודול והפעלת הפקודה החדשה.
דוגמה ליצירת Cmdlet ב-PowerShell¶
יצירת קובץ Module¶
ניצור קובץ בשם MyCustomCmdlets.psm1:
# MyCustomCmdlets.psm1
function Get-Greeting {
[CmdletBinding()]
param (
[Parameter(Mandatory=$true, Position=0)]
[string]$Name
)
process {
Write-Output "Hello, $Name!"
}
}
הסבר הקוד:¶
[CmdletBinding()]: קישוט שמצהיר על הפונקציה כ-Cmdlet.param: בלוק שמגדיר את הפרמטרים שהפונקציה תקבל.[Parameter(Mandatory=$true, Position=0)]: קישוט שמגדיר את הפרמטר כפרמטר חובה ומציב אותו במקום הראשון.[string]$Name: הגדרת סוג הנתונים של הפרמטר.process { ... }: בלוק שמגדיר את מה שהפונקציה תעשה בכל פעם שהיא מופעלת.
ייבוא המודול והפעלת הפקודה¶
כדי להשתמש ב-Cmdlet החדש, נייבא את המודול ולאחר מכן נפעיל את הפקודה החדשה:
# ייבוא המודול
Import-Module -Name "C:\path\to\MyCustomCmdlets.psm1"
# הפעלת ה-Cmdlet
Get-Greeting -Name "John"
הסבר הפקודות:¶
Import-Module -Name "C:\path\to\MyCustomCmdlets.psm1": מייבא את המודול המכיל את ה-Cmdlet החדש.Get-Greeting -Name "John": מפעיל את ה-Cmdlet עם הפרמטר שהעברנו ומציג את ההודעה "Hello, John!".
כתיבת Class ב-PowerShell¶
החל מ-PowerShell 5.0, ניתן לכתוב מחלקות ישירות בקוד PowerShell.
דוגמה ליצירת מחלקה ב-PowerShell:¶
class Person {
[string]$Name
[int]$Age
Person([string]$name, [int]$age) {
$this.Name = $name
$this.Age = $age
}
[void]Greet() {
Write-Output "Hello, my name is $($this.Name) and I am $($this.Age) years old."
}
}
# יצירת אובייקט חדש מהמחלקה Person
$person = [Person]::new("John", 30)
$person.Greet()
הסבר הקוד:¶
class Person: הגדרת מחלקה חדשה בשםPerson.[string]$Name,[int]$Age: הגדרת משתנים של המחלקה עם סוג הנתונים שלהם.Person([string]$name, [int]$age): קונסטרוקטור של המחלקה המאפשר יצירת אובייקט חדש עם פרמטרים.[void]Greet(): פונקציה בתוך המחלקה שמבצעת פעולה מסוימת (במקרה זה, הצגת ברכה).