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
({{pro_count}})
Beitrag bewerten:{{percentage}} % positiv
({{con_count}})
DANKE für deine Bewertung!
Fragen / Kommentare
(sortiert nach Bewertung / Datum) [alle Kommentare(neueste zuerst)]
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 }
danke habe ich ausgebessert
Beitrag erstellt von Bernhard
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'} }