PowerShell est un langage de script puissant qui offre de nombreuses fonctionnalités pour l’automatisation et la gestion des systèmes basés sur Windows. L’une des constructions les plus couramment utilisées est la boucle while
de PowerShell.
Ne vous inquiétez pas si vous êtes bloqué dans une boucle infinie en essayant d’apprendre le script PowerShell. Laissez la boucle while
de PowerShell vous guider vers votre grande évasion. Et dans ce tutoriel, vous reviendrez aux bases de travail avec les boucles while
en PowerShell pendant que vous écrivez vos scripts.
Lisez la suite pour faire passer vos compétences en scripting PowerShell au niveau supérieur!
Prérequis
Ce tutoriel sera une démonstration pratique. Pour suivre, assurez-vous d’avoir ce qui suit:
- A Windows machine – This tutorial uses Windows 10.
- Windows PowerShell 5.0 ou version ultérieure installée – Ce tutoriel utilise PowerShell 7.
- A user account with administrator privileges.
Exécution de boucles while
à condition unique
Un des types de boucles while
les plus simples est le type à condition unique. Contrairement à l’instruction If
, ce type de boucle exécute un ensemble de commandes données tant qu’une condition spécifiée s’évalue à vrai. Lorsqu’un ‘False’ est renvoyé, la boucle se termine et l’exécution se poursuit avec le reste du script.
Voici la syntaxe d’une boucle while
pour une seule condition :
- La première chose que vous remarquerez est l’utilisation de parenthèses. La condition doit être entre parenthèses, tandis que le bloc de code est un ensemble de commandes PowerShell qui s’exécutent tant que la condition est vraie.
- La deuxième chose à noter est que la condition doit renvoyer une valeur booléenne, qui s’évalue soit à Vrai, soit à Faux.
Exécutez le code ci-dessous, où la valeur de $val
commence à 0
et est incrémentée de 1
à chaque fois que le bloc de code s’exécute jusqu’à ce que la valeur de la variable $val
soit égale à 3
.
Lorsque $val
atteint une valeur de 3
, ce qui rend la condition Fausse, la boucle s’arrête et l’exécution continue avec le reste du script.

Exécuter une boucle While en PowerShell avec des variables intégrées ($true
/$false
)
L’exemple précédent, utilisant des conditions dans la boucle while
, fonctionne bien. Mais vous pouvez également utiliser les variables intégrées de PowerShell, telles que $true
et $false
, pour créer une boucle While
.
La syntaxe ci-dessous s’exécute jusqu’à ce que $true
ne soit plus $true
. En d’autres termes, la boucle s’exécute indéfiniment. Mais vous devez toujours inclure une manière d’interrompre une boucle infinie. Sinon, vous restez bloqué indéfiniment. Vous en apprendrez davantage sur la façon de sortir d’une boucle en utilisant break
et continue
plus tard dans ce tutoriel.
Exécutez le bloc de code ci-dessous, qui s’exécute indéfiniment, affichant la valeur de $i
dans la console.
Maintenant, appuyez sur Ctrl+C pour sortir de la boucle. Cette boucle consomme de nombreuses ressources système, soyez prudent lors de son utilisation.

while
loop with PowerShell’s built-in ($true
) variableExécution de boucles While
à conditions multiples
En plus des boucles while
à condition unique, vous pouvez également créer des boucles while
à condition multiple. Tout comme la boucle While
à condition unique, les conditions doivent renvoyer une valeur booléenne, soit True soit False.
Voici la syntaxe pour une boucle while
à condition multiple, similaire à la syntaxe pour une boucle while
à condition unique. La principale différence est que vous pouvez inclure plusieurs conditions séparées par les opérateurs suivants :
- ET (
-and
) – Les deux conditions doivent être vraies. - OU (
-or
) (l’une ou l’autre condition peut être vraie).
Exécutez le code ci-dessous, qui boucle tant que $val
n’est pas égal (-ne
) à 3
-and
que $i
n’est pas égal (-ne
) à 5
.
Lorsque les valeurs des deux variables atteignent leurs conditions respectives, la boucle se termine et l’exécution continue avec le reste du script.

Exécution d’une boucle while
avec l’opérateur AND

while
loop with AND operatorMaintenant, exécutez le code ci-dessous, qui demande à l’utilisateur son âge, stocké dans la variable $age
.
Si l’utilisateur saisit un nombre inférieur à (-lt
) 1
ou n’est pas un nombre (-nomatch
), l’utilisateur est invité à saisir à nouveau un nombre valide. Ce comportement est utile pour donner aux utilisateurs plusieurs chances de saisir une entrée valide.
Dans la sortie ci-dessous, vous pouvez voir que l’utilisateur a été invité à saisir son âge trois fois, comme suit :
- La première fois, l’utilisateur a saisi dix, qui n’est pas un nombre.
- La deuxième fois, l’utilisateur a saisi 0, ce qui est inférieur à 1.
- La troisième fois, l’utilisateur a saisi 10, qui est un âge valide.

while
loop with the OR operatorUtilisation des mots clés BREAK et CONTINUE dans les boucles While
Vous avez vu comment les boucles while
ajoutent de la flexibilité à votre script PowerShell. Mais pour mieux contrôler l’exécution de vos boucles While, ajoutez les mots clés break
et continue
.
Par exemple, si vous voulez traiter uniquement un certain nombre d’éléments dans un tableau, vous pouvez utiliser le mot clé BREAK pour sortir de la boucle une fois que le nombre d’éléments souhaité a été traité.
Ces mots clés fonctionnent comme suit:
Keyword | Function |
---|---|
break | Immediately exits the loop and continues execution with the rest of the script. |
continue | Skips over the remaining code block in the current iteration of the loop and continues with the next iteration. |
Exécutez le code ci-dessous, qui parcourt un tableau de 10 éléments.
Dans le code ci-dessous, l’instruction if
vérifie la valeur de $i
. Si la valeur de $i
est 5
, le mot clé continue
saute le reste du code dans la boucle et passe à l’itération suivante. Si la valeur de $i
est 8
, le mot clé break
sort de la boucle et continue avec le reste du script.
Sinon, la boucle while
imprime (Write-Host
) et incrémente la valeur de la variable $i
de 1
.
Comme vous pouvez le voir dans la sortie ci-dessous, la boucle a sauté les cinquième et huitième éléments du tableau. La boucle while
a traité tous les autres éléments du tableau et s’est arrêtée après avoir atteint le huitième élément.

while
loop with break
and continue
keywordsLimiter le temps d’exécution d’une boucle While
Typiquement, vous voudrez peut-être limiter la durée pendant laquelle une boucle s’exécute. Peut-être essayez-vous de vous connecter à un serveur distant. Si c’est le cas, vous pouvez donner au serveur le temps de répondre avant la fin du délai et la sortie de la boucle en utilisant la cmdlet Start-Sleep
à l’intérieur de votre boucle while
.
Le cmdlet Start-Sleep
met en pause l’exécution du script pendant une durée spécifiée.
Exécutez le code ci-dessous pour obtenir et stocker la date et l’heure actuelles Get-Date
dans la variable $startTime
. La boucle while
s’exécute tant que la date/heure actuelle est inférieure à 10
secondes à partir de la valeur stockée dans $startTime
.
Pendant l’exécution de la boucle while
, un message s’affiche tandis que le cmdlet Start-Sleep
met en pause l’exécution du script pendant 1
seconde.
Le bloc de code ci-dessous est simplement un modèle pour ce que vous utiliseriez réellement en pratique. Vous pouvez ajouter plus de code à l’intérieur de la boucle selon vos besoins.
Vous pouvez voir ci-dessous que la boucle a continué à s’exécuter pendant 10 secondes avant de sortir de la boucle.

while
loop runsConclusion
Les boucles PowerShell while
sont utiles lorsqu’on est confronté à des concepts complexes pour éviter de rester bloqué dans une boucle ou lors de l’écriture de vos scripts. Et dans ce tutoriel, vous avez appris de nombreuses façons de travailler avec les boucles while
pour des scripts plus flexibles et puissants.
Avec cette connaissance nouvellement acquise, tout est possible. Alors pourquoi ne pas maximiser l’utilisation des opérateurs logiques et des mots-clés pour automatiser les tâches avec vos scripts?