So verwendet man Switch Case in PowerShell

Was ist eigentlich Switch Case in PowerShell und wie verwendet man diese? In PowerShell ist der switch-Befehl im Prinzip eine Kontrollstruktur. Diese verwendet man, um verschiedene Aktionen basierend auf dem Wert eines Ausdrucks auszuführen.

Es ist hauptsächlich dann sinnvoll, wenn Du mehrere Bedingungen überprüfen und unterschiedliche Aktionen für jede Bedingung ausführen möchtest. Im Gegensatz zu einer Reihe von if-else-Anweisungen ist der switch-Befehl oft übersichtlicher und leichter zu lesen.

Switch Case in PowerShell – Grundlegende Syntax

Das folgende Beispiel zeigt dir dabei als Erstes die grundlegende Syntax. Es werden hier im Prinzip zwei Fälle unterschieden und es stehen drei Aktionen zur Verfügung. Der Ablauf ist dabei wie folgt.

Der Wert der Variablen wird geprüft ($variable).
Falls diese den Wert1 hat, wird die erste Aktion ausgeführt, andernfalls, wenn er Inhalt der Variable den Wert2 hat, wird die zweite Aktion ausgeführt.
Sollte keine der beiden Werte zutreffen, so wird die Aktion im Feld Default ausgeführt.
switch ($variable) {
    "Wert1" { 
        # Aktion für Wert1 
    }
    "Wert2" { 
        # Aktion für Wert2 
    }
    Default { 
        # Standardaktion, falls kein anderer Fall zutrifft 
    }
}

Beispielanwendung 1 zur Switch case in PowerShell – Zeichenketten

Angenommen, Du hast eine Variable, die den Wochentag speichert, und Du möchtest basierend auf dem Wochentag eine Nachricht ausgeben, dann könntest du hier sehr einfach die Switch Case in PowerShell verwenden.

Im ersten Teil wird der Variablen »$tag« die Zeichenkette „Montag“ übergeben.

Jetzt wird geprüft, bei welcher Aktion der Inhalt der Variablen übereinstimmt. Wenn dem so ist, wird die Aktion durchgeführt. In diesem Beispiel wird mit dem Cmdlet Write-Output ein entsprechender Text ausgegeben.

$tag = "Montag"

switch ($tag) {
    "Montag" { 
        Write-Output "Es ist der Anfang der Woche!" 
    }
    "Freitag" { 
        Write-Output "Das Wochenende steht vor der Tür!" 
    }
    "Samstag" { 
        Write-Output "Genieße deinen freien Tag!" 
    }
    "Sonntag" { 
        Write-Output "Der letzte Ruhetag vor der neuen Woche." 
    }
    Default { 
        Write-Output "Ein normaler Arbeitstag." 
    }
}

Für das Erstellen von PowerShell Scripts eignet sich neben der Windows PowerShell ISE auch hervorragend Visual Studio Code. Dieser Editor bietet dir wesentlich mehr Features, gerade, auch wenn du nicht nur mit der Windows PowerShell arbeitest, sondern auch mit anderen Scriptsprachen wie der BASH oder Python.

Im Übrigen ist der Editor Visual Studio Code komplett kostenlos und kann für jedes Betriebssystem heruntergeladen werden. Für die Verwendung von Visual Studio Code mit der Windows PowerShell gibt es auch ausgezeichnete Online-Kurse.

Switch Case in PowerShell verwenden
Switch Case in PowerShell verwenden

Beispielanwendung 2 zur Switch case in PowerShell – Zahlenbereiche

Du kannst auch Zahlenbereiche mit »switch« überprüfen und in jeder einzelnen Aktion auch bestimmte Vergleiche oder Operationen durchführen lassen.

So zeigt das folgende Beispiel, ob eine bestimmte Zahl einen bestimmten Wert besitzt. Je nach Ausgabe wird dann eine der verschiedenen Aktion gewählt.

$zahl = 6

switch ($zahl) {
    {$_ -lt 5} { 
        Write-Output "Die Zahl ist kleiner als 5." 
    }
    {$_ -ge 5 -and $_ -le 10} { 
        Write-Output "Die Zahl liegt zwischen 5 und 10." 
    }
    {$_ -gt 10} { 
        Write-Output "Die Zahl ist größer als 10." 
    }
    Default { 
        Write-Output "Ungültiger Bereich." 
    }
}

Beispielanwendung 3 zur Switch case in PowerShell – Arrays

Der »switch« Befehl kann auch mit Arrays verwendet werden. Hier ein Beispiel, das durch ein Array angelegt wird und für jedes Element eine Aktion ausführt wird.

$farben = @("rot", "grün", "blau", "gelb")

switch -Wildcard ($farben) {
    "rot" { 
        Write-Output "Die Farbe ist rot." 
    }
    "grün" { 
        Write-Output "Die Farbe ist grün." 
    }
    "blau" { 
        Write-Output "Die Farbe ist blau." 
    }
    "gelb" { 
        Write-Output "Die Farbe ist gelb." 
    }
    Default { 
        Write-Output "Unbekannte Farbe." 
    }
}

Beispielanwendung 4 : Nutzung von Regular Expressions

Du kannst auch reguläre Ausdrücke im »switch« Befehl verwenden: Mit regulären Ausdrücken kann man grundsätzlich nach bestimmten Zeichenkette suchen. Das nachfolgende Beispiel zeigt dessen Anwendung mithilfe der switch Anweisung.

$text = "Hallo123"

switch -Regex ($text) {
    "^[a-zA-Z]+$" { 
        Write-Output "Der Text besteht nur aus Buchstaben." 
    }
    "^\d+$" { 
        Write-Output "Der Text besteht nur aus Zahlen." 
    }
    "^[a-zA-Z]+\d+$" { 
        Write-Output "Der Text besteht aus Buchstaben und endet mit Zahlen." 
    }
    Default { 
        Write-Output "Der Text hat ein anderes Muster." 
    }
}

Videoanleitung – PowerShell Programmiergrundlagen

Fazit und Ausblick

Mit diesen Beispielen solltest Du eine gute Vorstellung davon haben, wie der »switch« Befehl in PowerShell funktioniert und wie Du ihn in verschiedenen Situationen einsetzen kannst. Oft ist diese Variante sinnvoller als eine verschachteltet IF-Anweisung zu erstellen.

Der Blogbetreiber und Autor: Markus Elsberger

Über den Autor

Mein Name ist Markus Elsberger und ich beschäftige mich mit der Administration von Windows und Linux-Systemen sowie mit diversen Themen bzgl. Netzwerktechnik. In meiner Lehrtätigkeit erstelle ich verschiedene Szenarien und teste auch verschiedene Konfigurationen, welche ich in diesem Blog festhalten möchte. Unterstütze das Blog mit einer Spende!


Löse die grundlegenden Probleme bei der Windows-Administration!
Kostenlose E-Books

(Netzwerkanalyse, Benutzerverwaltung, Festplattenkonfiguration, u. v. m.)


Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

KI-Tools in der Windows PowerShell

Warum jeder IT-Admin heute KI kennen sollte 

Kostenloses E-Book zum Thema PowerShell und KI mit Copilot, ChatGPT, u.v.m

Ebook - 10 Schritte nach der Windows Installation
Close the CTA

Zusätzlich erhältst du noch viele weitere Materialien u.a. für: Windows Windows 11, Windows Server, Docker, PowerShell Referenzen, Batch, Linux Terminal, 

u.v.m.

Close
Close
pCloud Angebot

Das Angebot gibt es nur für kurze Zeit.