PowerShell
Villkorad logik
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."
}