MS PowerShell
Topic outline
-
-
PowerShell verwendet eine befehlsbasierte Syntax, die sich stark an die englische Sprache anlehnt.
Die meisten Befehle (Cmdlets) in PowerShell werden nach dem Verb-Nomen-Muster gebildet. Diese Konvention hilft dabei, die Funktion eines Cmdlets intuitiv zu verstehen, da sie eine klare Beschreibung der durchzuführenden Aktion (Verb) und des Objekts, auf das die Aktion angewendet wird (Nomen), bietet.
-
Beispiele für Cmdlets
- - `Get-Command`# Listet alle Cmdlets und Funktionen auf, die in der Session verfügbar sind.
- - `Get-Process`#Zeigt Informationen über die aktuell laufenden Prozesse.
- - `Set-Date`# Ändert das Systemdatum.
- - `Remove-Item`# Löscht eine Datei oder ein Verzeichnis.
- - `New-Item`# Erstellt neue Dateien, Verzeichnisse oder andere Objekte.
- - `Invoke-WebRequest`# Sendet HTTP- oder HTTPS-Anfragen an einen Webserver und empfängt Antworten.
-
Zusätzliche Aspekte
Parameter: Cmdlets können auch mit Parametern versehen werden, die zusätzliche Informationen oder Anweisungen über die Ausführung des Befehls bieten.
Pipeline (|):PowerShell unterstützt die Verwendung von Pipelines, wodurch das Ergebnis eines Cmdlets direkt als Eingabe in ein weiteres Cmdlet übertragen werden kann.
-
-
Überblick über die Kontrollflussfunktionen von PowerShell, wobei der Schwerpunkt auf Schleifen und bedingten Verzweigungen liegt.
-
PowerShell unterstützt bedingte Verzweigungen durch
if-
,else if-
undelse-Anweisungen
, ähnlich wie in anderen Programmiersprachen. Dies ermöglicht die Ausführung von Codeblöcken basierend auf booleschen Bedingungen.Die
switch-Anweisung
in PowerShell ist eine leistungsstarke Alternative zu mehrerenif-Anweisungen
, die eine einfachere Verwaltung von mehreren Bedingungen ermöglicht. -
PowerShell enthält ein Cmdlet
"ForEach-Object"
, das in PowerShell-Skripten oft einfach alsforeach
bezeichnet wird. Dieses Cmdlet ist besonders leistungsfähig für die Verarbeitung von Elementen in einer Pipeline, was ein gängiges Muster in PowerShell ist, um Datensammlungen zu verarbeiten.ForEach-Object-Cmdlet
Get-ChildItem | ForEach-Object {ForEach-Object
führt einen Skriptblock für jedes Element in einer Pipeline aus. Es wird häufig in Szenarien verwendet, in denen Sie mit Sammlungen von Objekten arbeiten, insbesondere wenn diese Objekte von einem anderen Cmdlet an eine Pipeline weitergegeben werden.
# Execute code for each item; $_ refers to the current item
$_.Name
}Im obigen Beispiel ruft
Get-ChildItem
Dateien und Verzeichnisse ab, undForEach-Object
verarbeitet jedes Element, um seinen Namen auszugeben.Erweiterte Funktionen
1. Verwenden von Begin-, Process- und End-Blöcken
Mit
ForEach-Object
können Sie drei Skriptblöcke definieren:Begin
,Process
undEnd
. Diese Struktur ist nützlich für die Initialisierung von Ressourcen, die Verarbeitung von Elementen und die anschließende Bereinigung.- Beginnen: Wird einmal vor der Verarbeitung von Elementen ausgeführt.
- Verarbeiten: Wird für jedes Element in der Pipeline ausgeführt.
- Beenden: Wird einmal ausgeführt, nachdem alle Elemente verarbeitet wurden.
Write-Host "Starting processing items"
} -Process {
Write-Host "Processing item: $($_.Name)"
} -End {
Write-Host "Finished processing items"
}2. Kurzsyntax
Für einfache Vorgänge unterstützt PowerShell eine Kurzsyntax mit
Get-ChildItem | % { $_.Name }{}
direkt nach dem Cmdlet oder über den Alias3. Parallele Verarbeitung
Ab PowerShell 7.0 können Sie den
1..10 | ForEach-Object -Parallel {-Parallel-Parameter
verwenden, um Elemente parallel zu verarbeiten, was die Leistung bei großen Datensätzen oder langwierigen Vorgängen erheblich verbessern kann.
"Processing $_ on thread id $([System.Threading.Thread]::CurrentThread.ManagedThreadId)"
} -ThrottleLimit 5 - Beginnen: Wird einmal vor der Verarbeitung von Elementen ausgeführt.
-
-
PowerShell bietet eine Vielzahl von Datentypen und -strukturen für unterschiedliche Zwecke, darunter Primitive, Auflistungen und benutzerdefinierte Objekte.
-
Im Folgenden finden Sie eine Übersicht über einige gängige PowerShell-Datenstrukturen und bewährte Verfahren für die Auswahl der zu verwendenden Strukturen
-
Die Wahl der richtigen Datenstruktur hängt in hohem Maße von den spezifischen Anforderungen und Einschränkungen Ihrer Aufgabe ab, z. B. von der Komplexität der erforderlichen Operationen, den Leistungskriterien und der Speichereffizienz.
-
-