- 09.06.2017
- 3 Minuten zum Lesen
-
- S
- s
- s
- x
KURZBESCHREIBUNG
Beschreibt einen Sprachbefehl, mit dem Sie Anweisungslisten basierend auf den Ergebnissen eines oder mehrerer bedingter Tests ausführen können.
LANGE BESCHREIBUNG
Sie können die Anweisung If
verwenden, um Codeblöcke auszuführen, wenn ein bestimmter conditionaltest als true ausgewertet wird., Sie können auch einen oder mehrere additionalconditional Tests angeben, die ausgeführt werden sollen, wenn alle vorherigen Tests als false ausgewertet wurden. Schließlich können Sie einen zusätzlichen Codeblock angeben, der ausgeführt wird, wenn kein anderer bedingter Test als true ausgewertet wird.
Syntax
Das folgende Beispiel zeigt dieIf
Anweisungssyntax:
if (<test1>) {<statement list 1>}
Wenn Sie eine If
Anweisung ausführen, wertet PowerShell die <test1>
Bedingungsausdruck als wahr oder falsch aus., Wenn <test1>
true,<statement list 1>
läuft, und die PowerShell exits If
– Anweisung. Wenn<test1>
falsch ist, wertet PowerShell die Bedingung aus, die durch die Bedingungsanweisung<test2>
angegeben wird.
Sie können mehrere Elseif-Anweisungen verwenden, um eine Reihe von conditionaltests zu verketten. Also, dass jeder Test nur ausgeführt wird, wenn alle vorherigen Tests falsch sind.Wenn Sie eine If
– Anweisung erstellen müssen,die viele Elseif-Anweisungen enthält, sollten Sie stattdessen eine Switch-Anweisung verwenden.,
Beispiele:
Die einfachsteIf
– Anweisung enthält einen einzelnen Befehl und enthält keine Elseif-Anweisungen oder andere Anweisungen. Das folgende Beispiel zeigt die einfachste Form der Anweisung If
:
Wenn die Variable $a größer als 2 ist, wird die conditionevaluiert auf true und die Anweisungsliste wird ausgeführt. Wenn $a jedoch kleiner oder gleich 2 ist oder keine vorhandene Variable ist, spielt die Anweisung If
keine Nachricht ab.,
Durch Hinzufügen einer Else-Anweisung wird eine Meldung angezeigt, wenn $a kleiner als orequal bis 2 ist. Wie das nächste Beispiel zeigt:
Um dieses Beispiel weiter zu verfeinern, können Sie die Elseif-Anweisung verwenden, um die Nachricht zu verschieben, wenn der Wert von $a gleich 2 ist. Wie das nächste Beispiel zeigt:
Unter Verwendung der ternären Operatorsyntax
PowerShell 7.0 führte eine neue Syntax unter Verwendung des ternären Operators ein. Es folgt die C# ternaryoperator syntax:
<condition> ? <if-true> : <if-false>
Der ternäre operator verhält sich wie die vereinfachte if-else
– Anweisung., Der Ausdruck <condition>
wird ausgewertet und das Ergebnis in einen booleschen Wert konvertiert, um zu bestimmen, welcher Zweig ausgewertet werden sollnext:
- Der Ausdruck
<if-true>
wird ausgeführt, wenn der Ausdruck<condition>
wahr ist - Der Ausdruck
<if-false>
wird ausgeführt,wenn die<condition>
Ausdruck ist false
Zum Beispiel:
$service = Get-Service BITS$service.Status -eq 'Running' ? (Stop-Service $service) : (Start-Service $service)
Wenn der Dienst ausgeführt wird, wird er gestoppt und wenn sein Status nicht ausgeführt wird, wird er gestartet.,
SIEHE AUCH
about_Comparison_Operators
about_Switch