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."
}


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow