Grundlegendes
Wer mit der Windows PowerShell arbeitet, dem werden verschiedene Strukturen und Anforderungen begegnen, welche es zu bewältigen gibt. So ist z.B. eine einfache Anforderung die Bedingung. Diese wird über eine if-Anweisung erstellt. Auch gibt es noch verschiedene Schleifen wie z.B. die for-Schleife oder while-Schleife.
Wer sich näher mit der PowerShell beschäftigt, dem werden diese Dinge überlang oder kurz über den Weg laufen. Neben den genannten Kontrollstrukturen gibt es noch eine weitere, welche regelmäßig zum Einsatz kommt.
Die Rede ist von der Fallauswahl. Das heißt im Klartext, es soll eine Variable auf verschiedene Werte geprüft werden. Wenn ein bestimmter Wert zutrifft, dann werden genau diese Anweisungen in dem Block ausgeführt. Man spricht dabei von der Switch-Anweisung.
Die Switch-Anweisung
Die Switch-Anweisung prüft also eine Variable auf verschiedene Inhalte. Natürlich könnte man dies auch mit vielen if-Bedingungen durchführen. Allerdings würde das dann sehr unübersichtlich. Die allgemeine Syntax lautet dabei wie folgt:
switch ($variable) {wert 1 {Anweisung [break]} wert2 {Anweisung [break]} default {Anweisung} }
Wie bereits bekannt, wird jeder Wert auf TRUE oder FALSE geprüft. Also genauso wie bei der if-Bedingung. Sollte der geprüfte Wert der Variablen TRUE sein, so wird die Anweisung in diesem Block ausgeführt. Zusätzlich gibt es die „break“ Bedingung.
Diese gibt an, das nach der Anweisung die Switch Bedingungen verlassen werden. Sollte übrigens kein Wert der Variablen zutreffen, so gibt es den „default“ Teil, welcher dann ausgeführt wird.
Das folgende Beispiel soll die Anwendung von switch verdeutlichen: Dabei wird vorhab die Variable mit dem Wert „4“ belegt. Anschließend prüft die switch Bedingung, ob ein Wert zutrifft.
$variable=4
$Wert = Switch($variable) {
0 {'Der Inhalt der Variable ist 0'}
1 {'Der Inhalt der Variable ist 1'}
2 {'Der Inhalt der Variable ist 2'}
3 {'Der Inhalt der Variable ist 3'}
4 {'Der Inhalt der Variable ist 4'}
}
$Wert
Fazit
Wie bereits eingangs erwähnt, ist die Switch-Anweisung nur eine von vielen weiteren Schleifenkonstrukten bzw. Kontrollstrukturen, welche gerade im Bereich der Skripterstellung häufig zum Einsatz kommen.
Wer bereits mit anderen Programmiersprachen wie z. B. Java oder Python schon gearbeitet hat, dem dürften die Switch-Anweisung nicht unbekannt sein.
Das könnte ich auch interessieren:
- Wie erstellt man mit der Windows Powershell eine While – Schleife? – Endlosschleife
- Wie erstellt man mithilfe der Windows PowerShell ein Array und liest dieses auch aus?
- Mithilfe der Windows Powershell einen Ordner bzw. ein Verzeichnis auf Veränderungen überwachen
- PowerShell Ausgaben speichern
- Was ist eine IF-Anweisung in der Windows PowerShell und wie wendet man diese an!









Hallo Markus,
danke für die tollen Tipps.
Bei dem Beispiel hat sich ein Fehler eingeschlichen, die Klammer „)“ fehlt hinter $variable und PS stoppt unerwartet mit einer Fehlermeldung:
….
$Wert = Switch($variable { Korrektur-> $Wert = Switch($variable) {
….
Hallo Ferry,
danke für den Hinweis. Ich habe den Fehler behoben.