Recherche de site Web

Déclaration du commutateur PowerShell | Guide de l’instruction PowerShell Switch


Introduction à l'instruction PowerShell Switch

Une instruction switch dans PowerShell est la même que celle du switch dans d’autres langages de programmation. L'instruction switch est utilisée pour évaluer une liste prédéfinie de conditions, en d'autres termes, elle équivaut à plusieurs instructions if. L'instruction switch contient une séquence de conditions et chaque condition a sa propre action à effectuer. Chaque fois qu'une condition est remplie, l'action correspondante est exécutée. Chaque condition à l'intérieur d'une instruction switch est considérée comme un cas et la valeur pour laquelle l'instruction switch est exécutée est vérifiée pour chaque cas. Cet article couvrira en détail la déclaration du cas de changement. Il existe un bloc par défaut pour gérer les valeurs qui ne correspondent à aucune casse.

Syntaxe

La syntaxe/structure de base de l'instruction switch est la suivante

switch(<valueToBeChecked>) {
<condition> {<actionToBePerformed>}
break;
<condition> {< actionToBePerformed >}
break;
<condition> {< actionToBePerformed >}
break;
Default {< actionToBePerformed >}
}

Code :

switch (Jan)
{
Jan  {"It is Jan."}
Feb  {"It is Feb."}
Mar  {"It is Mar."}
Apr  {"It is Apr."}
}

Ce qui précède produira une sortie de « C'est janvier ».

Syntaxe n°1

L'autre syntaxe détaillée de l'instruction switch est la suivante

switch [-regex|-wildcard|-exact][-casesensitive] (<value>)
{
"string"|number|variable|{ expression } { statementlist }
default { statementlist }
}

Syntaxe n°2

switch [-regex|-wildcard|-exact][-casesensitive] -file filename
{
"string"|number|variable|{ expression } { statementlist }
default { statementlist }
}

Diagramme de flux de l'instruction PowerShell Switch

Ci-dessous le diagramme de flux :

Éléments clés de la déclaration Switch :

  • Un objet ou un tableau d'objets peut être utilisé comme variable de commutation.
  • Il peut y avoir n'importe quel nombre d'instructions case dans un commutateur. Les blocs par défaut et d’action sont facultatifs.
  • La variable switch et la variable case doivent être du même type de données. Il doit s'agir d'une constante ou d'un littéral.
  • Chaque fois qu'un cas correspond, les instructions suivantes sont exécutées jusqu'à ce qu'une instruction break soit rencontrée.
  • Lorsqu'une instruction break est rencontrée, l'instruction switch se termine. Le contrôle est déplacé vers l'instruction suivante après la pause.
  • Il n'est pas nécessaire pour chaque cas d'avoir une pause. S'il n'y a pas de pause, l'instruction suivante est exécutée jusqu'à ce qu'une pause soit rencontrée.

Paramètres

Voici les paramètres du commutateur.

  • Caractère générique : cela indique que la condition vérifiée est une chaîne générique. Si la clause correspondante n'est pas de type chaîne, alors le paramètre correspondant n'est pas pris en compte. Il s'agit d'une comparaison insensible à la casse.
  • Exact : cela signifie qu'une correspondance exacte doit être présente. Si la clause correspondante n'est pas de type chaîne, alors le paramètre correspondant n'est pas pris en compte. Il n'est pas sensible à la casse.
  • Sensible à la casse : cela indique une correspondance sensible à la casse. Si la clause correspondante n'est pas de type chaîne, alors le paramètre correspondant n'est pas pris en compte.
  • Fichier : l'entrée provient d'un fichier. Dans le cas de plusieurs fichiers spécifiés, seul le dernier fichier est utilisé à des fins de comparaison. Chaque ligne est évaluée par l'instruction switch. Il n'est pas sensible à la casse.
  • Regex : cela indique que l'expression régulière doit être prise en compte pour la correspondance. Si la clause correspondante n'est pas de type chaîne, alors le paramètre correspondant n'est pas pris en compte.

Exemples d'implémentation de l'instruction PowerShell Switch

Vous trouverez ci-dessous les exemples mentionnés :

Exemples #1

Code :

Write-Host "Demo of switch statement in PowerShell"
$name="vignesh"
switch($name)
{
"ram" {"my name is ram";break}
"raman" {"my name is raman";break}
"ramu" {"my name is ramu";break}
"Vignesh" {"my name is Vignesh";break}
"ram123" {"my name is ram123";break}
"ram45" {"my name is ram454";break}
"ramfdgdf" {"my name is ramdfgfdg";break}
"ramfgdf" {"my name is ramdgfdg";break}
"ramfgdfg" {"my name is ramdgg";break}
}
Write-Host "Demo with default block"
$city="NewYork"
switch($city)
{
"Tn" {"city name is TN";break}
"as" {"city name is as";break}
"sd" {"city name is sd";break}
"gf" {"city name is gf";break}
"gujarat" {"city name is gujarat";break}
"wqe" {"city name is wqe";break}
"ewrewr" {"city name is ewrewr";break}
"wer" {"city name is wer";break}
"ewr" {"city name is ewr";break}
default {"city is not present in the list";break}
}

Résultat :

Exemples #2

Code :

Write-Host "Demo of switch statement with array as input in PowerShell"
$name="vignesh"
$name1="Krishnakumar"
$name2="Nandhini"
$name3="Vyapini"
switch($name,$name1,$name2,$name3)
{
"Krishnakumar" {"my name is Krishnakumar";break}
"Nandhini" {"my name is Nandhini";break}
"ramu" {"my name is ramu";break}
"Vignesh" {"my name is Vignesh";break}
"ram123" {"my name is ram123";break}
"ram45" {"my name is ram454";break}
"ramfdgdf" {"my name is ramdfgfdg";break}
"ramfgdf" {"my name is ramdgfdg";break}
"Vyapini" {"my name is Vyapini";break}
}
Write-Host "Demo with default block"
$city="NewYork"
$city1="Tn"
$city2="gujarat"
$city3="Texas"
$city4="albama"
switch($city,$city1,$city2,$city3,$city4)
{
"Tn" {"city name is TN"}
"as" {"city name is as"}
"sd" {"city name is sd"}
"gf" {"city name is gf"}
"gujarat" {"city name is gujarat"}
"Texas" {"city name is texas"}
"ewrewr" {"city name is ewrewr";}
"wer" {"city name is wer"}
"NewYork" {"city name is NewYork"}
default {"city is not present in the list";break}
}

Résultat :

Explication : Dans l'exemple ci-dessus, si vous regardez attentivement, dans la première instruction switch, seule la première correspondance est imprimée. En effet, dès qu'une correspondance est trouvée, l'instruction break correspondante est exécutée et le cas switch est quitté. Dans le deuxième cas de commutation, toutes les valeurs correspondantes sont trouvées car aucune instruction break n'est écrite pour chaque cas.

Exemples #3

Code :

write-host "Demo of execution with and without break statement"
Write-Host "Demo of execution without break statement" -ForegroundColor Yellow
$Pm="Modi"
switch($pm)
{
"Modi" {"PM is Modi"}
"Indira gandhi" {"PM was Indira gandhi"}
"vallu" {"PM was Indira gandhi"}
"test" {"PM was Indira test"}
default {"none"}
"Modi" {"execution is done even after first match"}
}
Write-Host "Execution of switch with break statement" -ForegroundColor Yellow
switch($pm)
{
"Modi" {"PM is Modi";break}
"Indira gandhi" {"PM was Indira gandhi;break"}
"vallu" {"PM was Indira gandhi;break"}
"test" {"PM was Indira test;break"}
default {"none;break"}
"Modi" {"execution is done even after first match;break"}
}

Résultat :

Explication : Dans la sortie ci-dessus, le même cas de commutation est utilisé avec le même paramètre d'entrée, sauf que le premier cas de commutation n'a pas d'instruction break. Comme vous pouvez le voir ci-dessus, si le break n'est pas utilisé, l'exécution se poursuit même après une correspondance réussie, ce qui ne se produit pas lorsqu'un break est utilisé.

Conclusion

Ainsi, l'article a couvert en détail l'instruction switch case dans PowerShell. Il a également expliqué, avec des exemples appropriés, l'exécution d'une instruction switch case et sa syntaxe. La meilleure façon d’en savoir plus à ce sujet serait d’essayer d’autres méthodes et de les mettre en pratique dans des exemples de scripts.

Articles connexes