Share via


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 longue

L’instruction For (également appelée For boucle) est une construction de langage que vous pouvez utiliser pour créer une boucle qui exécute des commandes dans un bloc de commandes tandis qu’une condition spécifiée prend la valeur $true.

Une utilisation classique de la For boucle consiste à itérer un tableau de valeurs et à fonctionner sur un sous-ensemble de ces valeurs. Dans la plupart des cas, si vous souhaitez itérer toutes les valeurs d’un tableau, envisagez d’utiliser une Foreach instruction.

Syntax

L’exemple suivant montre la syntaxe de l’instruction For .

for (<Init>; <Condition>; <Repeat>)
{
    <Statement list>
}

L’espace réservé Init représente une ou plusieurs commandes qui sont exécutées avant le début de la boucle. Vous utilisez généralement la partie Init de l’instruction pour créer et initialiser une variable avec une valeur de départ.

Cette variable sera ensuite 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 est résolue en valeur $truebooléenne ou$false. PowerShell évalue la condition chaque fois que la boucle s’exécute For . Si l’instruction est $true, les commandes du bloc de commandes s’exécutent et l’instruction est évaluée à nouveau. Si la condition est toujours $true, les commandes de la liste Instruction s’exécutent à nouveau. La boucle est répétée jusqu’à ce que la condition devienne $false.

L’espace réservé Répéter représente une ou plusieurs commandes, séparées par des virgules, qui sont exécutées chaque fois que la boucle se répète. En règle générale, cela est utilisé pour modifier une variable qui est testée à l’intérieur de la partie Condition de l’instruction.

L’espace réservé de liste d’instructions représente un ensemble d’une ou plusieurs commandes qui sont exécutées chaque fois que la boucle est entrée ou répétée. Le contenu de la liste d’instructions est entouré d’accolades.

Prise en charge de plusieurs opérations

Les syntaxes suivantes sont prises en charge pour plusieurs opérations d’affectation dans l’instruction Init :

# Comma separated assignment expressions enclosed in parenthesis.
for (($i = 0), ($j = 0); $i -lt 10; $i++)
{
    "`$i:$i"
    "`$j:$j"
}

# Sub-expression using the semicolon to separate statements.
for ($($i = 0;$j = 0); $i -lt 10; $i++)
{
    "`$i:$i"
    "`$j:$j"
}

Les syntaxes suivantes sont prises en charge pour plusieurs opérations d’affectation dans l’instruction Repeat :

# Comma separated assignment expressions.
for (($i = 0), ($j = 0); $i -lt 10; $i++, $j++)
{
    "`$i:$i"
    "`$j:$j"
}

# Comma separated assignment expressions enclosed in parenthesis.
for (($i = 0), ($j = 0); $i -lt 10; ($i++), ($j++))
{
    "`$i:$i"
    "`$j:$j"
}

# Sub-expression using the semicolon to separate statements.
for ($($i = 0;$j = 0); $i -lt 10; $($i++;$j++))
{
    "`$i:$i"
    "`$j:$j"
}

Notes

Les opérations autres que la pré-incrémentation ou la post-incrémentation peuvent ne pas fonctionner avec toutes les syntaxes.

Pour plusieurs conditions, utilisez des opérateurs logiques, comme le montre l’exemple suivant.

for (($i = 0), ($j = 0); $i -lt 10 -and $j -lt 10; $i++,$j++)
{
    "`$i:$i"
    "`$j:$j"
}

Pour plus d’informations, consultez about_Logical_Operators.

Exemples

Au minimum, une For instruction nécessite la parenthèse entourant la partie Init, Condition et Repeat de l’instruction, ainsi qu’une commande entourée d’accolades dans la partie liste Des instructions de l’instruction.

Notez que les exemples à venir affichent intentionnellement du code en dehors de l’instruction For . Dans les exemples ultérieurs, le code est intégré à l’instruction For .

Par exemple, l’instruction suivante For affiche continuellement la valeur de la $i variable jusqu’à ce que vous sortiez manuellement de la commande en appuyant sur Ctrl+C.

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

Vous pouvez ajouter des commandes supplémentaires à la liste des instructions afin que la valeur de soit incrémentée de $i 1 chaque fois que la boucle est exécutée, comme le montre l’exemple suivant.

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

Tant que vous ne sortez pas de la commande en appuyant sur Ctrl+C, cette instruction affiche continuellement la valeur de la $i variable, car elle est incrémentée de 1 chaque fois que la boucle est exécutée.

Au lieu de modifier la valeur de la variable dans la partie liste d’instructions de l’instruction For , vous pouvez utiliser la partie Repeat de l’instruction à la For place, comme suit.

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

Cette instruction se répète indéfiniment jusqu’à ce que vous sortiez de la commande en appuyant sur Ctrl+C.

Vous pouvez terminer la boucle à l’aide For d’une condition. Vous pouvez placer une condition à l’aide de la partie Condition de l’instruction For . La For boucle se termine lorsque la condition prend $falsela valeur .

Dans l’exemple suivant, la For boucle s’exécute alors que la valeur de $i est 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 effectuer cette tâche à l’intérieur de la For boucle à l’aide de la partie Init de l’instruction For .

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

Vous pouvez utiliser des retours chariot au lieu de points-virgules pour délimiter les parties Init, Condition et Repeat de l’instruction For . L’exemple suivant montre un For qui utilise cette syntaxe alternative.

for ($i = 0
  $i -lt 10
  $i++){
  $i
}

Cette autre forme de l’instruction fonctionne dans les For fichiers de script PowerShell et à l’invite de commandes PowerShell. Toutefois, il est plus facile d’utiliser la For syntaxe d’instruction avec des points-virgules lorsque vous entrez des commandes interactives à l’invite de commandes.

La For boucle est plus flexible que la Foreach boucle, 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 $i variable est incrémentée de 2 dans la partie Repeat de l’instruction For .

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

La For boucle peut également être écrite sur une ligne, comme dans l’exemple suivant.

for ($i = 0; $i -lt 10; $i++) { Write-Host $i }

Voir aussi

about_Comparison_Operators

about_Foreach