Ciclos#

Comando ForEach-Object#

Foreach-Object é um comando para processamento de fluxos de dados.

Foreach-Object é aplicado para processamento linha a linha de elementos à medida que eles chegam ao fluxo de entrada:

ForEach-Object -InputObject (Get-Process) -Process { $_ }
Get-Process | ForEach-Object { $_.Name }
Get-Process | % { $_.Name }                          # % — alias para ForEach-Object
Get-Process | foreach { $_.Name }                    # alias da palavra-chave foreach

Os operadores break e continue não funcionam com ForEach-Object, pois não é um ciclo no sentido tradicional, mas sim um processamento de objeto em um pipeline.

Ciclo Foreach#

O ciclo Foreach é um ciclo para processamento de coleções.

O ciclo foreach itera sobre uma coleção:

foreach ($item in $array) {
  # ações com $item
}

O operador continue pula o restante da iteração atual e passa para a próxima.

O operador break interrompe completamente o ciclo.

Para sair de ciclos aninhados, pode-se usar um rótulo:

:outer foreach ($i in $array1) {
  foreach ($j in $array2) {
    if (<condição>) { break outer }
  }
}

Método ForEach#

O método ForEach() em PowerShell é um método de coleções (por exemplo, arrays, listas) que permite executar um script ou ação especificada para cada elemento da coleção. Ele é chamado em um objeto de coleção, aceita um bloco de script e aplica-o sequencialmente a todos os elementos, passando o elemento atual para a variável especial $PSItem (equivalente a $_ em pipelines).

$collection.ForEach({ 
    # Aqui $PSItem é o elemento atual da coleção
    Write-Output $PSItem 
})

Esse método é conveniente quando é necessário executar uma ação para elementos da coleção sem usar o ciclo foreach ou o comando ForEach-Object.

Ciclo For#

O ciclo For é um ciclo iterativo clássico.

A sintaxe é semelhante a linguagens do tipo C:

for (inicialização; condição; ação) {
  # corpo do ciclo
}

Exemplo:

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

O operador continue pula o restante da iteração atual e passa para a próxima.

O operador break interrompe completamente o ciclo.

Ciclos While e Do-While#

O ciclo While é um ciclo com pré-condição. While primeiro verifica a condição e depois executa o corpo:

while ($a -le 10) {
  $a++
}

O ciclo Do-While é um ciclo com pós-condição. Do-While primeiro executa o corpo e depois verifica a condição:

do {
  $i++
} while ($i -le 10)

A execução se repete enquanto a condição for verdadeira.

O operador continue pula o restante da iteração atual e passa para a próxima.

O operador break interrompe completamente o ciclo.

Ciclo Do-Until#

O ciclo Do-Until executa o corpo e depois verifica a condição para falsidade:

do {
  $i++
} until ($i -le 10)

Ele repete o corpo enquanto a condição NÃO for satisfeita.

O operador continue pula o restante da iteração atual e passa para a próxima.

O operador break interrompe completamente o ciclo.

Trabalhando com ciclos#

Você pode conferir exemplos de uso no link:

kak rabotat s tsiklami v powershell foreach object i while na primerakhfixmypc.ru