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
Andere Erweiterungen