Recherche de site Web

Instruction de commutateur PowerShell avec plusieurs conditions


Récemment, alors qu'il travaillait sur un script PowerShell, un membre de mon équipe m'a demandé comment utiliser plusieurs conditions dans une instruction switch PowerShell. J'ai essayé la solution et j'expliquerai l'instruction de commutation PowerShell avec plusieurs conditions, avec trois exemples utiles.

Remarque : J'ai exécuté tous les scripts PowerShell à l'aide de l'éditeur de code VS.

Instruction Switch dans PowerShell

Une instruction switch dans PowerShell est similaire aux instructions switch ou case trouvées dans d'autres langages de programmation. Il fournit un moyen plus propre et plus lisible de gérer plusieurs conditions par rapport à l'utilisation de plusieurs instructions if.

Voici un exemple de base d'une instruction switch :

$a = 3
switch ($a) {
    1 { "It is one." }
    2 { "It is two." }
    3 { "It is three." }
    default { "It is something else." }
}

Dans cet exemple, la variable $a est évaluée par rapport aux valeurs 1, 2 et 3. Puisque $a vaut 3, le résultat sera « Il est trois ».

J'ai également écrit un tutoriel complet sur la façon d'utiliser le switch case dans PowerShell, vous pouvez le parcourir.

Concentrons-nous maintenant sur la façon d'utiliser plusieurs conditions dans l'instruction switch dans PowerShell.

Instruction Switch avec plusieurs conditions dans PowerShell

PowerShell vous permet de tester plusieurs conditions dans un seul cas d'instruction switch. Cela se fait en utilisant la variable $_ et des opérateurs logiques dans les blocs de script.

Laissez-moi vous montrer trois exemples en temps réel pour mieux le comprendre.

Exemple 1 : plusieurs valeurs dans un seul cas

Vous pouvez spécifier plusieurs valeurs dans un seul cas en utilisant la variable $_ et les opérateurs logiques.

Voici un exemple et le script PowerShell complet.

$day = "Saturday"
switch ($day) {
    {$_ -eq "Saturday" -or $_ -eq "Sunday"} { "It is the weekend." }
    {$_ -eq "Monday" -or $_ -eq "Tuesday" -or $_ -eq "Wednesday" -or $_ -eq "Thursday" -or $_ -eq "Friday"} { "It is a weekday." }
    default { "Unknown day." }
}

Dans cet exemple, si $day vaut « samedi » ou « dimanche », le résultat sera « C'est le week-end ». Pour n’importe quel jour de la semaine, le résultat sera « C’est un jour de la semaine ».

Après avoir exécuté le script PowerShell ci-dessus, il m'a donné le résultat exact ; regardez la capture d'écran ci-dessous :

Lire le paramètre du commutateur PowerShell

Exemple 2 : utiliser plusieurs conditions avec des opérateurs logiques

Parfois, vous devrez peut-être évaluer des conditions plus complexes à l’aide d’opérateurs logiques. Bien que l'instruction switch elle-même ne prenne pas en charge les opérateurs logiques directement dans les étiquettes de cas, vous pouvez utiliser des blocs de script pour y parvenir.

Voici un exemple d'utilisation des opérateurs logiques dans l'instruction Switch dans PowerShell.

$number = 8
switch ($number) {
    { $_ -lt 5 } { "The number is less than 5." }
    { $_ -ge 5 -and $_ -le 10 } { "The number is between 5 and 10." }
    { $_ -gt 10 } { "The number is greater than 10." }
    default { "Unknown number." }
}

Dans cet exemple, la variable $number est vérifiée par rapport à plusieurs conditions à l'aide de blocs de script. Le $_ représente l'élément en cours d'évaluation. Si $number est 8, le résultat sera « Le nombre est compris entre 5 et 10 ».

J'ai exécuté le script PowerShell ci-dessus et vous pouvez voir le résultat dans la capture d'écran ci-dessous :

Lire le cas du commutateur PowerShell avec Regex

Exemple 3 : Combiner des conditions et des actions

Vous pouvez également combiner des conditions et des actions dans une instruction switch pour gérer des scénarios plus complexes dans PowerShell.

Regardez l'exemple et le script ci-dessous :

$input = "apple"
switch ($input) {
    {$_ -eq "apple" -or $_ -eq "banana"} { "It's a fruit." }
    {$_ -eq "carrot" -or $_ -eq "lettuce"} { "It's a vegetable." }
    { $_ -match "berry" } { "It's a type of berry." }
    default { "Unknown item." }
}

Dans cet exemple, l'instruction switch gère différents types d'entrée. Si $input est « pomme » ou « banane », le résultat sera « C'est un fruit ». S'il correspond à un motif contenant « baie », le résultat sera « C'est un type de baie ».

Voici le résultat dans la capture d'écran ci-dessous :

J'espère que vous avez appris à utiliser plusieurs conditions dans une instruction switch PowerShell avec ces exemples utiles.

Articles connexes