Lorsque vous utilisez des scripts PowerShell pour gérer des systèmes ou traiter des tâches en masse, vous rencontrerez sans aucun doute la nécessité d’utiliser une construction de boucle dans vos scripts. Il existe de nombreux types de boucles disponibles dans PowerShell, et l’un d’entre eux est la boucle for. La boucle for PowerShell peut permettre d’exécuter rapidement le même ensemble de commandes sur plusieurs éléments et produire des résultats cohérents.
Dans cet article, vous apprendrez ce qu’est la boucle for en PowerShell, vous comprendrez sa syntaxe et ce qui constitue une instruction de boucle for. Vous apprendrez également à partir des exemples les différentes façons d’utiliser la boucle for.
Comprendre l’instruction de boucle for en PowerShell et les espaces réservés
La boucle for de PowerShell est couramment utilisée lorsque le nombre de fois (nombre d’itérations) qu’une commande ou un processus doit s’exécuter est déjà connu. Un exemple serait lorsque vous voulez traiter uniquement un sous-ensemble de valeurs dans un tableau (par exemple, ne traiter que 10 éléments sur un total de X).
L’utilisation d’une boucle for offre plus de contrôle sur les limites et les conditions pour déterminer quand le code doit s’arrêter. Cela est différent de la boucle foreach ou de la cmdlet ForEach-Object
, où l’itération s’arrête après le traitement du dernier élément de la collection.
Voici la syntaxe de l’instruction de boucle for pour votre référence.
Comme vous pouvez le voir dans la syntaxe ci-dessus, l’instruction de boucle for en PowerShell peut être décomposée en quatre espaces réservés que vous devez connaître. Ce sont les espaces réservés Initial, Condition, Répéter et Liste d’instructions.
- Le placeholder Initial est l’endroit où vous spécifiez une valeur de départ. Cette valeur n’est lue par l’instruction qu’une seule fois. En général, les scripteurs assignent à cette variable une valeur de zéro.
- Le placeholder Condition spécifie la limite ou la condition pour déterminer si la boucle doit continuer à s’exécuter ou se terminer. L’expression utilisée dans ce placeholder est évaluée comme étant vraie.
- Le placeholder Repeat accepte plusieurs commandes. Les commandes fournies dans ce placeholder sont exécutées après chaque répétition de la boucle et avant que la Condition soit réévaluée. Les scripteurs utilisent généralement cela pour fournir une expression permettant d’incrémenter ou de décrémenter la valeur dans le placeholder Initial.
- Enfin, le placeholder Statement list est l’endroit où le code principal que vous souhaitez exécuter sera placé. Le code à l’intérieur de ce placeholder est répété dans une boucle jusqu’à ce que la Condition renvoie une valeur de
$False
.
Comprendre le flux d’exécution de la boucle For PowerShell
Pour mieux comprendre le fonctionnement de la boucle for PowerShell, vous devez vous familiariser avec son flux d’exécution. Une boucle for est initialement un processus en quatre étapes, puis devient un processus en trois étapes après la première exécution. Pour mieux comprendre, continuez à lire l’algorithme ci-dessous.
ÉTAPE 1
Au début de l’instruction de la boucle for, la valeur Initial est lue et stockée en mémoire.
Exemple : $num = 0
ÉTAPE 2
La déclaration de boucle for évalue le résultat booléen de l’expression à l’intérieur de l’espace réservé Condition. Si le résultat est $false
, la boucle for est terminée. Si le résultat est $true
, alors la boucle for continue à l’étape suivante.
Exemple : $num -lt 10
ÉTAPE 3
PowerShell exécute le code à l’intérieur de l’espace réservé Liste d’instructions. Il peut y avoir une ou plusieurs commandes, blocs de script ou fonctions.
Exemple : "Je compte $num "
ÉTAPE 4
Dans cette étape, l’expression dans l’espace réservé Répéter est exécutée, ce qui mettra à jour la valeur actuelle de l’espace réservé Initial. Ensuite, le flux reviendra à l’étape 2.
Exemple : $num++
Utilisation de la boucle for PowerShell (Exemples)
Les sections suivantes seront quelques exemples de l’utilisation de la boucle for de différentes manières. Ces exemples peuvent ou non avoir une utilité pratique ou réelle telle quelle. Mais les techniques que vous apprendrez peuvent vous guider dans l’utilisation de la boucle for si vous rencontrez un réel besoin de le faire.
Maintenant que vous avez une idée de comment fonctionne la boucle for, il est temps de voir comment tout cela se met en place en utilisant du code de base.
Obtenir une séquence de nombres
Le code ci-dessous affiche la chaîne "Je compte $num"
de manière répétée sur la console à partir de 1 jusqu’à ce que la valeur de $num
atteigne 10.
Lorsque vous copiez le code ci-dessus et le collez dans votre session PowerShell pour l’exécuter, cette capture d’écran ci-dessous vous montre le résultat.

Concaténation de chaînes
La déclaration de la boucle for n’est pas limitée uniquement à des expressions mathématiques telles que l’addition, la soustraction ou la multiplication. Elle peut également être utilisée pour concaténer des valeurs de chaînes de caractères.
L’exemple ci-dessous répète la lettre « x » en ajoutant un caractère supplémentaire à chaque ligne, jusqu’à ce que le nombre de caractères atteigne 30.
Comme vous pouvez le voir, la valeur de $x
a été initialisée avec ''
qui ne contient aucun caractère. La limite basée sur la condition est atteinte lorsque le nombre de caractères dans la valeur de $x
atteint 30. Après chaque itération, une lettre « x » supplémentaire est ajoutée à la valeur de $x
.
La sortie ci-dessous montre le résultat attendu lorsque le code ci-dessus est exécuté dans PowerShell.

Concaténation de chaînes avec plusieurs expressions initiales et de répétition
Les espaces réservés Initial et Repeat dans la déclaration de la boucle for peuvent accepter plusieurs expressions.
En utilisant le code de l’exemple précédent, le code peut être modifié pour ajouter une nouvelle expression dans l’espace réservé Repeat afin de choisir une couleur aléatoire. Cette couleur aléatoire sera ensuite utilisée comme couleur d’avant-plan de la chaîne à afficher dans la console.
Comme vous pouvez le voir dans la première ligne, un tableau contenant des noms de couleurs est défini. L’opération de la boucle for choisira aléatoirement un nom de couleur dans ce tableau.
Remarquez que les espaces réservés Initial et Repeat ont maintenant deux expressions. Chaque expression est placée entre parenthèses et séparée par une virgule.
Une fois que le code modifié est exécuté dans PowerShell, le résultat attendu est affiché ci-dessous.

Affichage de la progression
La méthode la plus courante d’utilisation de la boucle for est l’affichage d’indicateurs de progression. Cela est principalement utilisé lors de l’exécution de tâches pour un grand nombre d’éléments qui peuvent prendre du temps à se terminer. Par exemple, la création d’un rapport pour toutes les tailles de boîtes aux lettres dans votre organisation Exchange, ou la mise à jour des attributs de plusieurs utilisateurs dans Active Directory.
Le code d’exemple ci-dessous vous montre la façon basique d’afficher la progression de 1 à 100%. Comme vous le verrez, la valeur initiale de la variable $counter est 1, et la condition indique que cette boucle s’exécutera jusqu’à ce que la valeur de $counter atteigne 100.
Lorsque vous exécutez le code ci-dessus dans PowerShell, vous devriez voir une sortie similaire, comme indiqué ci-dessous.

Affichage d’un compte à rebours
Le code suivant montre comment utiliser la boucle for pour afficher un compte à rebours. Ce compte à rebours ne montre que les secondes restantes, en commençant par 10.
Si vous voulez changer le numéro de départ, vous devez simplement modifier la valeur de la variable $seconds dans la balise Initial.
En exécutant le code ci-dessus dans PowerShell, vous obtiendrez la sortie d’exemple ci-dessous.

Affichage d’un compte à rebours (Boucle for imbriquée)
Que se passe-t-il si vous souhaitez afficher le compte à rebours à l’aide du format minutes:secondes
? La boucle imbriquée peut être utilisée pour cela. Une boucle for imbriquée est simplement définie comme une boucle for à l’intérieur d’une autre boucle for, et ainsi de suite.
Le code d’exemple ci-dessous contient deux instructions de boucle for.
La première boucle for gère le compte à rebours de la partie minute du minuteur. Comme vous pouvez le voir, il y a une variable $minutes
avant la boucle for où vous devez indiquer le nombre de minutes que la boucle for décomptera.
La deuxième boucle for gère le compte à rebours de la partie secondes du minuteur. Après chaque itération, la boucle fait une pause d’une seconde avant de reprendre. Elle continuera à le faire jusqu’à ce que la valeur de $seconds
atteigne 0.
Lorsque le code ci-dessus est exécuté, voici à quoi ressemblerait le compte à rebours.

Détermination d’un nombre premier
La boucle for de PowerShell est également un bon choix pour les opérations mathématiques. Dans cet exemple, la boucle for est utilisée pour déterminer si un nombre donné est un nombre premier.
A prime number is a number that is only divisible by 1 and N, where N is the number itself. For example, if the value of N is 7, then N divided by 1
is 7 divided by 1
.
Le script ci-dessous, lorsqu’il est exécuté, effectuera ce qui suit:
- Demander à l’utilisateur d’entrer un nombre.
- Effectuer une division en utilisant le nombre saisi comme dividende et les diviseurs sont les nombres de 2 au nombre saisi moins 1. Cela signifie que si la valeur saisie est 7, les diviseurs sont respectivement 2, 3, 4, 5 et 6.
- Si le quotient est un nombre entier, cela signifie que le nombre saisi n’est pas un nombre premier et donc, la boucle for sera terminée.
- Si le quotient n’est pas un nombre entier, cela signifie que le nombre saisi est un nombre premier.
Copiez et enregistrez ce script sous le nom isPrime.ps1
Une fois que vous avez enregistré le script isPrime.ps1
, exécutez-le dans PowerShell pour le tester. Pour illustrer, voici un exemple de sortie.

Résumé
La boucle for de PowerShell ne présente aucune surprise par rapport au fonctionnement des boucles for utilisées dans d’autres langages, ce qui facilite son adaptation si vous n’êtes pas novice dans le domaine.
Dans cet article, vous avez appris les bases de l’instruction de boucle for de PowerShell. Vous avez appris sa syntaxe, sa logique, son flux, et vous avez même appris à l’utiliser à travers plusieurs exemples dans différents contextes.
Rappelez-vous que même s’il existe d’autres types de boucles en PowerShell, il est injuste de dire que l’un est meilleur que l’autre. Tout dépend de l’objectif du code et des préférences de celui qui écrit le code.
En utilisant les connaissances que vous avez acquises dans cet article, vous devriez être en mesure de trouver des moyens d’appliquer la boucle for pour automatiser vos tâches fastidieuses habituelles.