PowerShell if else und switch

This page is also available in English

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!


Top-Artikel in diesem Bereich

Preview Windows PowerShell Skript erstellen und ausführen

Windows PowerShell Skript erstellen und ausführen

geändert: 06.04.2022 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 PowerShell Loops und Array

PowerShell Loops und Array

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

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

Preview PowerShell Log-Files: Logging in eine Textdatei - write to file

PowerShell Log-Files: Logging in eine Textdatei - write to file

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

Logfiles in PowerShell können über den Befehl Out-File, über eine eigene Funktion oder über das in PowerShell integrierte Transcript erstellt werden. ... weiterlesen


Fragen / Kommentare


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

✍anonym
29.08.2016 06:24
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
gepostet am 29.08.2016 06:24
danke habe ich ausgebessert

Beitrag erstellt von Bernhard

✍anonym
29.08.2016 07:14
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'}
}