PowerShell if else und switch

Mit den Befehlen if, elseif, else und switch Bedingungen testen und falls diese zutreffen einen Befehl ausführen: wenn, sonst, ... dann  

if - elseif - else


In folgendem Beispiel wird die die Variable $Eingabe auf bestimmte Werte getestet, wenn keines der Werte zutrifft kommt else zum Einsatz:  

$Eingabe=4 #Eingabe wird mit dem Wert 4 festgelegt
 
if ($Eingabe -eq '1') { #Teste ob die Variable Eingabe gleich 1 ist. Trifft nicht zu, der folgende Befehl wird nicht ausgeführt:
        write-host 'die Variable Eingabe=1'  #Der Befehl falls Eingabe gleich 1: schreibe die Variable Eingabe=1
    } elseif ($Eingabe -eq '2') { #Teste ob Eingabe gleich 2 ist. Trifft nicht zu
        write-host 'die Variable Eingabe=2'
    } elseif ($Eingabe -eq '3') {#Teste ob Eingabe gleich 3 ist: Trifft nicht zu
        write-host 'die Variable Eingabe=3'
    } else {#wenn keine der Bedingungen zutrifft, weiter mit folgenden Skriptblock
        write-host 'die Variable ist weder 1 noch 2 noch 3'#Befehl:schreibe "die Variable ist weder 1 noch 2 noch 3"
    }

 Ausgabe

die Variable ist weder 1 noch 2 noch 3

PS C:\WINDOWS\system32>

switch

Bei mehreren if- elseif Abfragen kann der Befehl switch verwendet werden:

$Eingabe=2
$Detail = Switch($Eingabe) {
    0 {'Die Variable ist 0'}
    1 {'Die Variable ist 1'}
    2 {'Die Variable ist 2'}
    3 {'Die Variable ist 3'}
    4 {'Die Variable ist 4'}
}
$Detail

Ausgabe:

Die Variable ist 2

positive Bewertung({{pro_count}})
Beitrag bewerten:
{{percentage}} % positiv
negative Bewertung({{con_count}})

DANKE für deine Bewertung!


veröffentlicht am 14.01.2016 von Bernhard
geändert am 18.08.2020 von Bernhard


Top-Artikel in diesem Bereich

Preview PowerShell Loops und Array

PowerShell Loops und Array

geändert: 11.11.2020 von Bernhard (Erstveröffentlichung: 21.03.2013)

Ein Array speichert mehrere Werte, ähnlich einer 2 spaltigen Tabelle. ... weiterlesen

Preview Windows PowerShell Skript erstellen und ausführen

Windows PowerShell Skript erstellen und ausführen

geändert: 08.09.2021 von Bernhard (Erstveröffentlichung: 28.11.2012)

Im einfachsten Fall ist ein PowerShell-Skript eine Textdatei mit einer Reihe von PowerShell-Befehlen. Als PowerShell Skript versteht man eine Datei mit der Endung .ps1. Die Skriptdatei kann eine Sammlung von Befehlen, Funktionen oder Cmdlets enthalten. ... weiterlesen

Preview Windows PowerShell Befehle: commands im Überblick

Windows PowerShell Befehle: commands im Überblick

geändert: 12.09.2017 von Bernhard (Erstveröffentlichung: 16.11.2011)

die verfügbaren PowerShell Befehle können mit dem Befehl: ... weiterlesen


Fragen / Kommentare


(sortiert nach Bewertung / Datum) [alle Kommentare(neueste zuerst)]

✍anonym
erstellt am 29.08.2016 06:08
User: rost 
ich glaube, das erste Beispiel ist fehlerhaft ! Zumindest wird das Ergebnis nicht richtig ausgegeben, wenn mann eine Zahl mit einem Wert zwischen 1-3 angibt. Richtig könnte es so aussehen:

$Eingabe=read-host -prompt "Bitte eine Zahl eingeben"

if ($Eingabe -eq '1') {write-host 'Die Zahl ist 1'
}
    
    elseif ($Eingabe -eq '2') { 
        write-host 'Die Zahl ist 2'
    }

    elseif ($Eingabe -eq '3') {
    write-host 'Die Zahl ist 3'
    }
    
    elseif ($Eingabe -eq '4') {
    write-host 'Die Zahl ist 4'
    }
    
else {#wenn keine der Bedingungen zutrifft, weiter mit folgenden Skriptblock
    write-host 'Die Eingabe ist keine Zahl zwischen 1 und 4' -foregroundcolor red
}
✍Bernhard
erstellt am 29.08.2016 06:08
danke habe ich ausgebessert

erstellt von Bernhard

✍anonym
erstellt am 29.08.2016 07:08
User: rost 
Auch die switch-Anweisung ist so nicht wirklich korrekt ! Besser wäre:

Switch(Read-Host "Geben Sie eine Variable ein") {
    0{'Die Variable ist 0'}
    1{'Die Variable ist 1'}
    2{'Die Variable ist 2'}
    3{'Die Variable ist 3'}
    4{'Die Variable ist 4'}
    
 default {'ungültige Eingabe'}
}