Articles

Powershell ForEach Loop Statement Tutorial with Examples

ForEach é uma PowerShell statement usada para usar iterate ou loop sobre a lista dada, array ou coleção dos objetos, cadeias, números, etc. ForEach é um mecanismo de loop muito popular onde podemos usar diferentes casos como loop através de arquivos, números, Strings, processos, etc. Powershell versão 4.0 traz algumas melhorias de desempenho para oForEach loop.

PowerShell Sintaxe ForEach

instrução Foreach tem a seguinte sintaxe, onde podemos usar ITEMCOLLECTION e CODE-BLOCK.

ForEach(ITEM in COLLECTION){ CODE BLOCK}
  • ITEM é um único valor ou objeto que muda ao longo de cada iteração.
  • coleção é uma matriz, coleção, lista de valores, ou objetos como 1,2,3,4.
  • bloco de código é o bloco onde a operação real é executada que geralmente usa ITEM. Este bloco pode ser de linhas simples ou múltiplas.

Foreach através de um Array de Strings

de uma forma simples, podemos iterar sobre a lista dada do array de string. Estamos a analisar a matriz chamada “cidades” que contém vários nomes de cidades. Vamos imprimir cada nome da cidade com o comando “echo”, como em baixo.

$cities = ("istanbul,ankara,canakkale")foreach ($city in $cities){ echo $city}
ForeachThrough Uma Matriz De Seqüências de caracteres

podemos ver que cada nome da cidade é impresso para o powershell terminal em uma única linha.

Foreach Through An Collection of Numbers

In the previous example, we have looped over a given list of strings. Nós também podemos iterar ou loop através de uma lista de números. Nós criaremos um array chamado numbers e iterate sobre cada item neste array de números.

$numbers=(1,2,3,4,5)foreach ($number in $numbers){ echo $number}
Foreach Através de Um conjunto De Números

$_ Uso de

Quando usando alguns cmdlets para redirecionar a saída para o cmdlet Foreach, podemos usar o “$” para cada item ou objeto. Por exemplo, se usarmos o cmdlet “Get-Process” cada item ou processo será atribuído ao $ em cada iteração. Podemos especificar o atributo como nome $.Name e imprimir como em baixo.

PS> Get-Process | ForEach-Object {$_.ProcessName}
$_ Usage

We can also print multiple attributes in foreach by delimiting them with comma.

PS> Get-Process | ForEach-Object {$_.ProcessName, $_.ID}
$_ Usage

Foreach Through Files

We can also loop through files by using Get-ChildItem cmdlet. Get-ChildItemirá listar ficheiros e pastas comodir comando MSDOS. Esta saída será escrita para consolar com o comando Echo.

foreach($file in Get-ChildItem) {Echo $file}
Foreach Através de Arquivos

Foreach Através de Extensões de arquivos Específicos, Como Morcego

Podemos listar especificamente a extensão especificada. A extensão irá geralmente fornecer o tipo de arquivo como texto, avi, mkv, mp3, doc etc. Neste exemplo, vamos listar apenas*.bat ou arquivos Bat.

 foreach($file in Get-ChildItem *.bat) {Echo $file}
Foreach Através de Extensões de arquivos Específicos, Como Morcego

podemos ver que somente os arquivos como test.bat e autoexec.bat serão listados.

Foreach Over CSV File

CSV files are used to store text data in a structured manner. Podemos facilmente encontrar em cada linha de um arquivo CSV como em baixo. Neste exemplo, vamos ler um arquivo IP CSV e fornecer ao foreach para imprimir a consola Powershell.

$IPs = (Get-Content IP.csv).split(",")foreach ( $IP in $IPs){ echo $IP}

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *