Szukaj…


Składnia

  • if (wyrażenie) {}
  • if (wyrażenie) {} else {}
  • if (wyrażenie) {} elseif (wyrażenie) {}
  • if (wyrażenie) {} elseif (wyrażenie) {} else {}

Uwagi

Zobacz także Operatory porównania , których można używać w wyrażeniach warunkowych.

jeśli, jeszcze i jeszcze jeśli

Program Powershell obsługuje standardowe operatory logiczne warunkowe, podobnie jak wiele języków programowania. Umożliwiają one uruchamianie niektórych funkcji lub poleceń w określonych okolicznościach.

Za pomocą if polecenia w nawiasach ( {} ) są wykonywane tylko wtedy, gdy spełnione są warunki wewnątrz if ( () )

$test = "test"
if ($test -eq "test"){
    Write-Host "if condition met"
}

Możesz także zrobić coś else . W tym przypadku wykonywane są else polecenia, if warunki if nie są spełnione:

$test = "test"
if ($test -eq "test2"){
    Write-Host "if condition met"
}
else{
    Write-Host "if condition not met"
}

lub elseif . Komenda else if uruchamia polecenia, if warunki if nie są spełnione, a warunki elseif są spełnione:

$test = "test"
if ($test -eq "test2"){
    Write-Host "if condition met"
}
elseif ($test -eq "test"){
    Write-Host "ifelse condition met"
}

Zwróć uwagę na powyższe użycie -eq (równość) CmdLet, a nie = == jak wiele innych języków robi dla równości.

Negacja

Możesz zignorować wartość logiczną, tzn. Wprowadź instrukcję if , gdy warunek jest fałszywy, a nie prawdziwy. Można to zrobić za pomocą -Not komandletu

$test = "test"
if (-Not $test -eq "test2"){
    Write-Host "if condition not met"
}

Możesz także użyć ! :

$test = "test"
if (!($test -eq "test2")){
    Write-Host "if condition not met"
}

istnieje również operator -ne (nie równy):

$test = "test"
if ($test -ne "test2"){
    Write-Host "variable test is not equal to 'test2'"
}

Skrót warunkowy

Jeśli chcesz użyć skrótu, możesz użyć logiki warunkowej z następującym skrótem. Tylko ciąg „false” będzie miał wartość true (2.0).

#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
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow