PowerShell
Bedingte Logik
Suche…
Syntax
- if (Ausdruck) {}
- if (Ausdruck) {} else {}
- if (Ausdruck) {} elseif (Ausdruck) {}
- if (Ausdruck) {} elseif (Ausdruck) {} else {}
Bemerkungen
Siehe auch Vergleichsoperatoren , die in bedingten Ausdrücken verwendet werden können.
wenn, sonst und sonst wenn
Powershell unterstützt standardmäßige bedingte Logikoperatoren, ähnlich wie viele Programmiersprachen. Dadurch können bestimmte Funktionen oder Befehle unter bestimmten Umständen ausgeführt werden.
Bei einem if
die Befehle in den Klammern ( {}
) nur ausgeführt, wenn die Bedingungen innerhalb des if ( ()
) erfüllt sind
$test = "test"
if ($test -eq "test"){
Write-Host "if condition met"
}
Sie können auch etwas else
. Hier werden die else
Befehle ausgeführt, wenn die if
Bedingungen nicht erfüllt sind:
$test = "test"
if ($test -eq "test2"){
Write-Host "if condition met"
}
else{
Write-Host "if condition not met"
}
oder ein elseif
. Ein else if führt die Befehle aus, wenn die if
Bedingungen nicht erfüllt sind und die elseif
Bedingungen erfüllt sind:
$test = "test"
if ($test -eq "test2"){
Write-Host "if condition met"
}
elseif ($test -eq "test"){
Write-Host "ifelse condition met"
}
Beachten Sie die Verwendung von -eq
(Gleichheit) mit CmdLet und nicht =
oder ==
wie viele andere Sprachen für die Gleichheit.
Negation
Sie können einen booleschen Wert negieren, dh, eine if
-Anweisung eingeben, if
eine Bedingung falsch ist und nicht wahr. Dies kann mit dem -Not
-Not -Not
durchgeführt werden
$test = "test"
if (-Not $test -eq "test2"){
Write-Host "if condition not met"
}
Sie können auch verwenden !
:
$test = "test"
if (!($test -eq "test2")){
Write-Host "if condition not met"
}
Es gibt auch den Operator -ne
(nicht gleich):
$test = "test"
if ($test -ne "test2"){
Write-Host "variable test is not equal to 'test2'"
}
Wenn bedingte Abkürzung
Wenn Sie die Abkürzung verwenden möchten, können Sie die bedingte Logik mit der folgenden Abkürzung verwenden. Nur die Zeichenfolge 'false' wird zu true (2.0) ausgewertet.
#Done in Powershell 2.0
$boolean = $false;
$string = "false";
$emptyString = "";
If($boolean){
# this does not run because $boolean is false
Write-Host "Shorthand If conditions can be nice, just make sure they are always boolean."
}
If($string){
# This does run because the string is non-zero length
Write-Host "If the variable is not strictly null or Boolean false, it will evaluate to true as it is an object or string with length greater than 0."
}
If($emptyString){
# This does not run because the string is zero-length
Write-Host "Checking empty strings can be useful as well."
}
If($null){
# This does not run because the condition is null
Write-Host "Checking Nulls will not print this statement."
}