Contrôle de flux
Le contrôle du flux fait référence à la manière dont votre code s’exécute dans votre console ou votre script. Il décrit le flux suivi par le code et la façon dont vous contrôlez ce flux. Plusieurs constructions sont disponibles pour vous aider à contrôler le flux. Le code peut exécuter toutes les instructions ou seulement certaines d’entre elles. Il peut également répéter certaines instructions jusqu’à ce qu’il satisfasse une condition donnée.
Examinons ces constructions de contrôle du flux pour voir ce qu’elles peuvent faire :
Assainissez l’entrée. Si vous utilisez des paramètres dans un script, vous devez vous assurer que vos paramètres contiennent des valeurs raisonnables afin que votre script fonctionne comme prévu. L’écriture de code pour gérer ce processus est appelée assainissement des entrées.
Contrôlez le flux d’exécution. La technique précédente vous garantit d’obtenir des données d’entrée raisonnables et correctes. Cette technique se rapporte plus au fait de décider comment exécuter le code. Les valeurs définies peuvent déterminer quel groupe d’instructions exécuter.
Itérez sur des données. Parfois, vos données prennent la forme d’un tableau, à savoir une structure de données contenant de nombreux éléments. Avec de telles données, vous pouvez avoir besoin d’examiner chaque élément et d’effectuer une opération pour chacun d’entre eux. De nombreuses constructions dans PowerShell peuvent vous aider dans ce processus.
Notes
L’itération sur des tableaux dépasse le cadre de ce module. De nombreuses constructions permettent de gérer le contrôle du flux dans PowerShell. Nous ne pouvons pas les nommer toutes, mais nous présenterons quelques constructions importantes que vous êtes susceptible de rencontrer dans les scripts que vous lisez ou écrivez.
Gérer l’entrée et le flux d’exécution avec If, ElseIf et Else
Vous pouvez utiliser une construction If pour déterminer si une expression est vraie (True) ou fausse (False). Selon cette détermination, vous pouvez exécuter l’instruction définie par la construction If. La syntaxe pour If ressemble à celle-ci :
If (<expression that evaluates to True or False>)
{
# Statement that runs only if the preceding expression is $True.
}
Opérateurs
PowerShell a deux paramètres intégrés pour déterminer si une expression est True ou False:
-
$Trueindique qu’une expression estTrue. -
$Falseindique qu’une expression estFalse.
Vous pouvez utiliser des opérateurs pour déterminer si une expression est True ou False. Il existe différents opérateurs. L’idée de base consiste généralement à déterminer si un élément situé à gauche de l’opérateur correspond à un élément situé à droite, en fonction de la condition de l’opérateur. Un opérateur peut exprimer des conditions indiquant, par exemple, si un élément est égal à un autre, s’il est supérieur à un autre ou s’il correspond à une expression régulière.
Voici un exemple d’utilisation d’un opérateur. L’opérateur -le détermine si la valeur à gauche de l’opérateur est inférieure ou égale à la valeur de droite :
$Value = 3
If ($Value -le 0)
{
Write-Host "Is negative"
}
Ce code n’affiche rien, car l’expression a pour valeur False. La valeur 3 est clairement positive.
Else
La construction If exécute les instructions uniquement si l’expression a pour valeur True. Que faire si vous souhaitez gérer les cas où l’expression a pour valeur False ? Vous utilisez alors la construction Else.
If exprime « si ce cas spécifique est vrai, exécutez cette instruction. » Else n’accepte pas d’expression. Elle capture tous les cas où la clause If a pour valeur False. Quand vous combinez If et Else, le code exécute les instructions de l’une des deux constructions. Modifions le code précédent de manière à inclure une construction Else :
$Value = 3
If ($Value -le 0)
{
Write-Host "Is negative"
} Else {
Write-Host "Is Positive"
}
Comme nous avons placé Else à côté de l’accolade fermante de If, nous avons créé une construction jointe qui fonctionne comme un tout. Si vous exécutez ce code dans la console, vous verrez Is Positive s’afficher. Cela est dû au fait que If a pour valeur False, mais que Else a pour valeur True.
Else affiche donc son instruction.
Notes
Vous pouvez utiliser Else seulement si une construction If est définie juste au-dessus de celle-ci.
ElseIf
If et Else fonctionnent parfaitement pour couvrir toutes les voies que le code peut prendre.
ElseIf est une autre construction qui peut être utile.
ElseIf est destiné à être utilisé avec If. Il indique que « l’expression dans cette construction sera évaluée si l’instruction If précédente a pour valeur False ». Comme If, ElseIf peut accepter une expression. Il est donc pratique de considérer ElseIf comme un if secondaire.
Voici un exemple qui utilise ElseIf :
# _FullyTax.ps1_
# Possible values: 'Minor', 'Adult', 'Senior Citizen'
$Status = 'Minor'
If ($Status -eq 'Minor')
{
Write-Host $False
} ElseIf ($Status -eq 'Adult') {
Write-Host $True
} Else {
Write-Host $False
}
Il est possible d’écrire ce code de manière plus compacte, mais cette solution montre l’utilisation de ElseIf. Cela montre comment If est évalué en premier, suivi de ElseIf, puis de Else.
Notes
Comme avec Else, vous ne pouvez pas utiliser ElseIf si vous ne définissez pas un If auparavant.