Recherche…


Syntaxe

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

Remarques

Voir aussi Opérateurs de comparaison , utilisables dans les expressions conditionnelles.

si, sinon et sinon si

Powershell prend en charge les opérateurs de logique conditionnelle standard, comme beaucoup de langages de programmation. Celles-ci permettent d'exécuter certaines fonctions ou commandes dans des circonstances particulières.

Avec un if les commandes à l'intérieur des parenthèses ( {} ) ne sont exécutées que si les conditions à l'intérieur du if ( () ) sont remplies

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

Vous pouvez aussi faire else . Ici, les commandes else sont exécutées si les conditions if ne sont pas remplies:

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

ou un elseif . Un autre s'exécute les commandes si le if les conditions ne sont pas remplies et les elseif conditions sont remplies:

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

Notez que l'utilisation ci-dessus -eq (égalité) CmdLet et non = ou == comme beaucoup d'autres langues le font pour l'équité.

Négation

Vous pouvez vouloir annuler une valeur booléenne, c'est-à-dire entrer une instruction if lorsqu'une condition est fausse plutôt que vraie. Cela peut être fait en utilisant le -Not CmdLet

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

Vous pouvez aussi utiliser ! :

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

il y a aussi l' -ne (pas égal):

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

Si sténographie conditionnelle

Si vous souhaitez utiliser la sténographie, vous pouvez utiliser une logique conditionnelle avec le raccourci suivant. Seule la chaîne 'false' sera évaluée à 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
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow