about_For

Mis à jour: mai 2014

S'applique à: Windows PowerShell 2.0, Windows PowerShell 3.0, Windows PowerShell 4.0, Windows PowerShell 5.0

RUBRIQUE

about_For

DESCRIPTION COURTE

Décrit une commande de langage que vous pouvez utiliser pour exécuter des instructions basées sur un test conditionnel.

DESCRIPTION DÉTAILLÉE

L'instruction For (également appelée boucle For) est une construction de langage avec laquelle vous pouvez créer une boucle qui exécute des commandes d'un bloc de commandes tant qu'une condition spécifiée a la valeur True.

La boucle For s'utilise généralement pour itérer sur les valeurs d'un tableau et exécuter des commandes sur un sous-ensemble de ces valeurs. Dans la plupart des cas, l'itération sur toutes les valeurs d'un tableau s'effectue à l'aide d'une instruction Foreach.

Syntaxe

L'exemple suivant illustre la syntaxe de l'instruction For.

          for (<init>; <condition>; <repeat>) 
          {<statement list>}

L'espace réservé <init> représente une ou plusieurs commandes séparées par des virgules, qui sont exécutées avant le démarrage de la boucle. Vous utilisez généralement la partie <init> de l'instruction pour créer une variable et l'initialiser avec une valeur de début. Notez que la syntaxe avec virgule ne peut pas être utilisée avec les instructions d'assignation, comme dans l'exemple suivant :

          $ofs=",";$rs = "rs"; $cs = "cs"; for ($r = $rs, $c = $cs; $true;) 
          { "r is '$r' and c is '$c'"; break }

Cette variable sera donc la base de la condition à tester dans la partie suivante de l'instruction For.

L'espace réservé <condition> représente la partie de l'instruction For qui renvoie la valeur booléenne True ou False. Windows PowerShell® évalue la condition à chaque exécution de la boucle For. Si l'instruction a la valeur True, les commandes du bloc de commandes sont exécutées, puis l'instruction est de nouveau évaluée. Si la condition a toujours la valeur True, les commandes de la liste d'instructions sont réexécutées. La boucle est répétée jusqu'à ce que la condition devienne False.

L'espace réservé <repeat> représente une ou plusieurs commandes séparées par des virgules, qui sont exécutées à chaque répétition de la boucle. En règle générale, il est utilisé pour modifier une variable qui est testée au sein de la partie <condition> de l'instruction.

L'espace réservé <statement list> représente une ou plusieurs commandes qui sont exécutées à chaque démarrage ou répétition d'une boucle. Le contenu de la liste d'instructions est placé entre accolades.

Exemples

Une instruction For nécessite au minimum des parenthèses autour des parties <init>, <condition> et <repeat> de l'instruction, et une commande placée entre accolades dans la partie <statement list> de l'instruction.

Notez que, dans les exemples suivants, le code a été intentionnellement placé en dehors de l'instruction For. Dans les exemples ultérieurs, le code est à l'intérieur de l'instruction For.

Par exemple, l'instruction For suivante affiche la valeur de la variable $i jusqu'à ce que vous arrêtiez manuellement la commande en appuyant sur CTRL+C.

          $i = 1
          for (;;){Write-Host $i}

Vous pouvez ajouter des commandes supplémentaires à la liste d'instructions pour que la valeur de la variable $i s'incrémente de 1 à chaque exécution de la boucle, comme indiqué dans l'exemple suivant.

          for (;;){$i++; Write-Host $i}

Tant que vous n'arrêtez pas la commande à l'aide des touches CTRL+C, cette instruction continue d'afficher la valeur de la variable $i, incrémentée de 1 à chaque nouvelle exécution de la boucle.

Au lieu de modifier la valeur de la variable dans la partie statement list de l'instruction For, vous pouvez utiliser la partie <repeat> de l'instruction For, comme ceci :

          $i=1
          for (;;$i++){Write-Host $i}

Cette instruction se répétera indéfiniment, sauf si vous arrêtez la commande en appuyant sur CTRL+C.

En définissant une condition (avec la partie <condition> de l'instruction For), vous pouvez mettre fin à la boucle For quand la condition devient False. Dans l'exemple suivant, la boucle For s'exécute tant que la variable $i a une valeur inférieure ou égale à 10.

          $i=1
          for(;$i -le 10;$i++){Write-Host $i}

Au lieu de créer et d'initialiser la variable en dehors de l'instruction For, vous pouvez le faire à l'intérieur de la boucle For en utilisant la partie <init> de l'instruction For.

          for($i=1; $i -le 10; $i++){Write-Host $i}

Pour délimiter les parties <init>, <condition> et <repeat> de l'instruction For, vous pouvez remplacer les points-virgules par des retours chariot. L'exemple suivant illustre cette syntaxe différente de l'instruction For.

        
            for (<init>
          <condition>
          <repeat>){
          <statement list>
          }

Cette autre syntaxe de l'instruction For est acceptée dans les fichiers de script Windows PowerShell et à l'invite de commandes Windows PowerShell. Toutefois, il est plus facile d'utiliser la syntaxe avec des points-virgules pour une instruction For quand vous entrez des commandes interactives à l'invite de commandes.

La boucle For offre plus de souplesse que la boucle Foreach, car elle vous permet d'incrémenter des valeurs dans un tableau ou une collection à l'aide de modèles. Dans l'exemple suivant, la variable $i est incrémentée de 2 dans la partie <repeat> de l'instruction.

          for ($i = 0; $i -ile 20; $i += 2) {Write-Host $i}

VOIR AUSSI

about_Comparison_Operators

about_Foreach