PowerShell
Logique conditionnelle
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."
}