Sök…


Syntax

  • if (expression) {}
  • if (expression) {} else {}
  • if (expression) {} elseif (expression) {}
  • if (expression) {} elseif (expression) {} else {}

Anmärkningar

Se även Jämförelseoperatörer som kan användas i villkorade uttryck.

om, annars och annat om

Powershell stöder standardbetingade logikoperatörer, precis som många programmeringsspråk. Dessa tillåter att vissa funktioner eller kommandon körs under särskilda omständigheter.

Med en if kommandona inuti parenteserna ( {} ) körs endast om villkoren inuti if ( () ) är uppfyllda

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

Du kan också göra något else . Här exekveras de else kommandona if villkoren if inte är uppfyllda:

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

eller en elseif . En annan ifall kör kommandona om villkoren if inte är uppfyllda och villkoren för elseif :

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

Notera ovanstående användning -eq (jämlikhet) CmdLet och inte = eller == som många andra språk gör för jämlikhet.

Negation

Du kanske vill förneka ett booleskt värde, dvs. ange ett if uttalande när ett villkor är falskt snarare än sant. Detta kan göras med -Not CmdLet

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

Du kan också använda ! :

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

det finns också -ne (inte lika) operatören:

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

Om villkorligt kort

Om du vill använda korthaven kan du använda villkorad logik med följande korthandling. Endast strängen "falsk" kommer att utvärderas till 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
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow