PowerShell-Skripterstellung
Einführung
PowerShell ist eine leistungsstarke Skriptsprache für die Kommandozeile. Sie kann nicht nur Befehle interaktiv ausführen, sondern auch Befehle in Skriptdateien kombinieren, um komplexe Automatisierungsaufgaben zu erledigen.
Dieser Artikel führt Sie Schritt für Schritt durch die grundlegenden Fertigkeiten der PowerShell-Skriptentwicklung, einschließlich:
- Wie Sie Skripte erstellen und ausführen
.ps1scripts - Wie Sie Funktionen definieren und verwenden
- Wie Sie eine modulare Entwicklung durchführen und Ihre Skriptlogik wiederverwenden
1. Erste Schritte mit PowerShell-Skripts
Erstellen von Skriptdateien (.ps1)
PowerShell-Skriptdateien sind reine Textdateien mit der.ps1Erweiterung, wobei sie eine Reihe auszuführender PowerShell-Befehle enthalten.
Beispiel: hello.ps1
# hello.ps1 Write-Output "Hello from PowerShell script!"
Sie können jeden beliebigen Texteditor (VS Code empfohlen) verwenden, um.ps1Dateien zu erstellen.
Ausführungsrichtlinie
Aus Sicherheitsgründen erlaubt Windows standardmäßignicht das Ausführen von Skripten, daher müssen Sie die Ausführungsrichtlinie festlegen.
Aktuelle Ausführungsrichtlinie anzeigen:
Get-ExecutionPolicy
Vorübergehend festlegen, dass lokale Skripte ausgeführt werden dürfen:
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned
RemoteSigned: Lokale Skripte können ohne Signatur ausgeführt werden, aber heruntergeladene Skripte müssen von einem vertrauenswürdigen Herausgeber signiert sein.
Skripte ausführen
Aus der Befehlszeile ausführen:
.\hello.ps1
Geben Sie den auszuführenden PowerShell-Executor an:
powershell.exe -File .\hello.ps1 pwsh.exe -File .\hello.ps1 # PowerShell 7+
Rechtsklick auf "Mit PowerShell ausführen" (erfordert Richtlinieneinstellungen)
Übergeben und Verarbeiten von Parametern
Sie können in einem Skript definieren, wie externe Parameter entgegengenommen werden:
Beispiel: Skript mit Parametern greet.ps1
param (
[string]$name,
[int]$age
)
Write-Output "你好,$name,你的年龄是 $age 岁。"
Parameter beim Ausführen übergeben:
.\greet.ps1 -name "小明" -age 18
Unterstützt außerdem Standardwerte und Parametervalidierung:
param (
[Parameter(Mandatory=$true)]
[ValidateNotNullOrEmpty()]
[string]$City = "北京"
)
2. Verwenden von Funktionen
Funktionsdefinition und -aufruf
function Say-Hello {
Write-Output "Hello from function"
}
Say-Hello
Parameterdeklaration und -validierung
Funktionen können auch Parameter haben, definiert mit einemparamBlock:
function Add-Numbers {
param (
[int]$a,
[int]$b
)
return $a + $b
}
Add-Numbers -a 3 -b 5 # 输出 8
Positionsparameter können ebenfalls verwendet werden:
function Add {
param ($x, $y)
$x + $y
}
Add 10 20
Umgang mit Rückgabewerten
PowerShell-Funktionen geben standardmäßig alle Ausgaben zurück (einschließlichWrite-Output)。
Es wird empfohlen, zu verwendenreturnum explizit zurückzugeben:
function Get-Square {
param ([int]$num)
return $num * $num
}
$result = Get-Square -num 6
Write-Output $result
Funktionsbereich
Variablen, die innerhalb einer Funktion definiert werden, sind standardmäßig lokale Variablen:
function Demo-Scope {
$message = "Hello"
}
Demo-Scope
Write-Output $message # 无法访问
Um von außen auf Variablen zuzugreifen, können Sie Bereichspräfixe verwenden:
$global:x = 5
3. Modulare Entwicklung
Was ist ein PowerShell-Modul
Ein Modul ist eine Sammlung mehrerer Funktionen, Skripte und Ressourcen, die verwendet wird, um Code zu organisieren und die Wiederverwendung zu erleichtern.
Häufige Modultypen:
- Skriptmodule (
.psm1) - Manifestmodule (
.psd1) - Binärmodule (.dll)
Importieren und Verwenden von Modulen
Verwenden SieImport-Modulezum Importieren eines Moduls:
Import-Module MyModule.psm1
Geladene Module anzeigen:
Get-Module
Funktionen in einem Modul aufrufen:
Say-Hello
Einführung in die PowerShell Gallery
PowerShell GalleryEs ist das offizielle Modulrepository für PowerShell, in dem Sie Tausende von Modulen herunterladen und installieren können.
Beispiel für die Installation eines Moduls:
Install-Module -Name PSReadLine
Aktualisieren eines Moduls:
Update-Module PSReadLine
Erstellen eines einfachen benutzerdefinierten Moduls
Erstellen Sie eine neue MyModule.psm1-Datei und fügen Sie Funktionen hinzu:
# MyModule.psm1
function Greet-User {
param ([string]$name)
Write-Output "欢迎你,$name"
}
Importieren und in einem Skript aufrufen:
Import-Module .\MyModule.psm1 Greet-User -name "小红"
Tipp: Sie können Moduldateien in Pfade in
$env:PSModulePathdamit das System sie automatisch erkennt.
4. Zusammenfassung
| Inhalt | Beschreibung |
|---|---|
.ps1Datei |
PowerShell-Skripterweiterung zum Speichern von Befehlen |
param |
Wird zum Definieren von Skript-/Funktionsparametern verwendet |
Set-ExecutionPolicy |
Steuert, ob Skripte ausgeführt werden dürfen |
| Funktion | Kapselt wiederverwendbaren Code und verbessert die strukturelle Klarheit |
Modul (.psm1) |
Organisiert mehrere Funktionen und ermöglicht Portabilität |
| PowerShell Gallery | Offizielles Modul-Repository, in dem Sie Module von Drittanbietern herunterladen können |