Sommaire
La commande Powershell « switch » vous permettra de remplacer un long enchaînement de « if…elseif…elseif…else…. »
En terme de performance, lorsque vous souhaitez contrôler peu de valeurs différentes, les deux commandes se valent. Par contre si vous avez besoin de tester beaucoup de valeurs différentes, alors je vous conseillerais d’opter pour la commande switch.
Comparaison des commandes
Prenons pour exemple les deux scripts ci-dessous ou nous souhaitons effectuer des tâches différentes en fonction de la valeur de la variable « $Value ». Le premier script utilise la commande switch tandis que le second utilise un enchaînement de IF pour tester la variable.
- SCRIPT 1 : WITH SWITCH
- SCRIPT 2 : WITH IF
####################################### ######## SCRIPT 1 : WITH SWITCH ####### ####################################### #Variable $Value = "Value1" #Switch Statement with $Value switch ($Value) { #First state, if $Value = "Value" Value { echo "Test Value" } #Second state, if $Value = "Value1" Value1 { echo "Test Value1" } #Third state, if $Value = "Value2" Value2 { echo "Test Value2" } #Default state Default { echo "Test Default" } } ############################## ###### SCRIPT 2 WITH IF ###### ############################## #Variable $Value = "Value1" #If with $Value condition if($Value -eq "Value") { echo "Test Value" } else if ($Value -eq "Value1") { echo "Test Value1" } else if ($Value -eq "Value2") { echo "Test Value2" } else { echo "Test Default" }
Exemples
Exemple 1 avec switch
Lorsque $Value = « Value1 » la commande powershell nous retourne :
Test Value1
Exemple 2 avec switch
Lorsque $Value = « Value10 » la commande powershell nous retourne la valeur par défaut puisqu’il n’existe pas de correspondance dans le switch :
Test Default