about_For

Breve descrição

Descreve um comando language que você pode usar para executar instruções com base em um teste condicional.

Descrição longa

A For instrução (também conhecida como loop) é uma construção de linguagem que você pode usar para criar um loop que executa comandos em um bloco de comandos enquanto uma condição especificada é avaliada como For$true.

Um uso típico do For loop é iterar uma matriz de valores e operar em um subconjunto desses valores. Na maioria dos casos, se você quiser iterar todos os valores em uma matriz, considere usar uma Foreach instrução.

Sintaxe

A seguir mostra a sintaxe da For instrução.

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

O espaço reservado Init representa um ou mais comandos que são executados antes do início do loop. Normalmente, você usa a parte Init da instrução para criar e inicializar uma variável com um valor inicial.

Esta variável será então a base para a condição a ser testada na próxima parte da For instrução.

O espaço reservado Condition representa a For parte da instrução que é resolvida para um $true valor booleano ou $falsebooleano . O PowerShell avalia a condição sempre que o For loop é executado. Se a instrução for $true, os comandos no bloco de comandos serão executados e a instrução será avaliada novamente. Se a condição ainda $truefor , os comandos na lista Instrução serão executados novamente. O loop é repetido até que a condição se torne $false.

O espaço reservado Repetir representa um ou mais comandos, separados por vírgulas, que são executados cada vez que o loop se repete. Normalmente, isso é usado para modificar uma variável que é testada dentro da parte Condition da instrução.

O espaço reservado da lista Statement representa um conjunto de um ou mais comandos que são executados cada vez que o loop é inserido ou repetido. O conteúdo da lista de declarações é cercado por chaves.

Suporte para múltiplas operações

As seguintes sintaxes são suportadas para várias operações de atribuição na instrução Init :

# Comma separated assignment expressions enclosed in parentheses.
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"
}

As seguintes sintaxes são suportadas para várias operações de atribuição na instrução 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 parentheses.
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"
}

Nota

Operações diferentes do incremento anterior ou posterior podem não funcionar com todas as sintaxes.

Para várias condições, use operadores lógicos como demonstrado pelo exemplo a seguir.

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

Para obter mais informações, consulte about_Logical_Operators.

Exemplos

No mínimo, uma For instrução requer o parêntese em torno da parte Init, Condition e Repeat da instrução e um comando cercado por chaves na parte da lista Statement da instrução.

Observe que os próximos exemplos mostram intencionalmente o código fora da For instrução. Em exemplos posteriores, o código é integrado na For instrução.

Por exemplo, a instrução a seguir For exibe continuamente o valor da $i variável até que você saia manualmente do comando pressionando CTRL+C.

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

Você pode adicionar comandos adicionais à lista de instruções para que o valor de seja incrementado $i em 1 cada vez que o loop for executado, como mostra o exemplo a seguir.

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

Até que você saia do comando pressionando CTRL+C, essa instrução exibirá continuamente o valor da variável à medida que ela for incrementada $i em 1 cada vez que o loop for executado.

Em vez de alterar o valor da variável na parte da lista de instruções da instrução, você pode usar a For parte Repeat da instrução, da For seguinte maneira.

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

Essa instrução ainda se repetirá indefinidamente até que você saia do comando pressionando CTRL+C.

Você pode encerrar o For loop usando uma condição. Você pode colocar uma condição usando a parte Condição da For instrução. O For loop termina quando a condição é avaliada como $false.

No exemplo a seguir, o loop é executado enquanto o For valor de $i é menor ou igual a 10.

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

Em vez de criar e inicializar a variável fora da instrução, você pode executar essa tarefa dentro do For loop usando a parte Init da ForFor instrução.

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

Você pode usar retornos de carro em vez de ponto-e-vírgula para delimitar as partes Init, Condition e Repeat da For instrução. O exemplo a seguir mostra um For que usa essa sintaxe alternativa.

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

Essa forma alternativa da instrução funciona em arquivos de script do PowerShell e no prompt de For comando do PowerShell. No entanto, é mais fácil usar a sintaxe da instrução com ponto-e-vírgula For quando você insere comandos interativos no prompt de comando.

O For loop é mais flexível do que o Foreach loop porque permite incrementar valores em uma matriz ou coleção usando padrões. No exemplo a seguir, a $i variável é incrementada em 2 na parte Repeat da For instrução.

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

O For loop também pode ser escrito em uma linha, como no exemplo a seguir.

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

Consulte também