PowerShell foreach loop

PowerShell foreach loop
Na programação, um loop é um conceito simples e poderoso. Um loop é a repetição de um conjunto de instruções, a menos que uma certa condição seja atendida. Um loop adequado pode economizar tempo e aumentar a eficiência de um código. Powershell, sendo uma linguagem de script, suporta várias formas de loops.

Neste guia, confira como usar o loop foreach em PowerShell.

Loops de PowerShell

Em princípio, todos os loops são os mesmos. No entanto, para uma melhor experiência de codificação e legibilidade, várias linguagens de programação implementam o conceito de loop de maneiras diferentes. De fato, o mesmo idioma pode suportar vários tipos de loops, cada um com sua estrutura única.

PowerShell suporta vários tipos de loops.

  • para: um loop padrão para executar determinadas tarefas um número específico de vezes.
  • enquanto: continua realizando um conjunto de operações até que as condições sejam atendidas.
  • Faça enquanto: o loop continua funcionando desde que a condição seja verdadeira. No entanto, sempre será executado na primeira vez.
  • Do-until: quase funciona semelhante ao fazer enquanto. A única diferença é que só será executado se a condição fornecida não for verdadeira.
  • Forach-Object: Este loop executa uma operação para cada objeto de entrada.

Como o título do artigo sugere, estaremos olhando para o loop foreach.

Foreach loop em PowerShell

O código da estrutura do loop foreach é o seguinte.

Foreach (item na coleção)


Aqui,

  • Item: é um único valor ou objeto que muda com cada iteração.
  • Coleção: pode ser uma matriz, lista de valores, coleta ou objetos.
  • : É o bloco de código que é executado quando a condição de loop é atendida. Geralmente usa o item.

Foreach é um dos loops mais comuns e mais simples do PowerShell. Ele lê uma coleção inteira de itens e, para cada item, executa as operações definidas.

Pode ser usado para inúmeras situações, por exemplo, trabalhando o conteúdo de um diretório.

Foreach loop na prática

Nesta seção, daremos uma olhada em algumas implementações de amostra do loop foreach. Para executar os códigos, já preparei um script vazio do PowerShell.

$ nano foreach-loop.ps1

O shebang seria algo assim.

$ #!/snap/bin/PowerShell

Marque o arquivo de script do PowerShell como um executável.

$ chmod +x foreach-loop.ps1

FORECH através de uma matriz de string
Na primeira demonstração, implementaremos um loop foreach que lê a partir de uma matriz de string de nomes de cidades e imprime os nomes da cidade na tela.

Primeiro, declare a matriz de string.

$ cidades = ("Tóquio", "Nova York", "Moscou", "Londres", "Sydney")

Agora, implemente o loop foreach para trabalhar com cada elemento da matriz.

foreach ($ city in $ cities)

Echo $ City

Teste o código executando o script.

$ ./foreach-loop.ps1

FORECH através de uma coleção de números
Neste exemplo, implementaremos o loop foreach semelhante ao anterior. A diferença é que passará por uma variedade de números em vez disso.

Declare a matriz de números.

$ números = (9,8,7,6,5,4,3,2,1)

Agora, implemente o loop foreach para imprimir os números um por um.

foreach (número de $ em $ números)

eco $ número

Vamos colocar o código em ação.

$ ./foreach-loop.ps1

Para cada meio através de arquivos
É um dos cenários mais comuns para usar loops foreach. Com a ajuda de outros cmdlets, podemos obter informações específicas sobre determinados diretórios/arquivos e usar essas informações para executar as ações necessárias.

Neste exemplo, o loop foreach verificará o conteúdo de um diretório/home/viktor/desktop/sample_dir e imprimirá o nome dos arquivos.

foreach ($ arquivo em get -childitem -recurse -path/home/viktor/desktop/sample_dir)

eco $ arquivo

Execute o código.

$ ./foreach-loop.ps1

Aqui, o cmdlet Get-Childitem Obtém os itens sobre o local descrito. A bandeira “-Path” descreve qual diretório analisar. Se houver vários níveis de subdiretos, o uso de "-recurse" receberá todos os itens infantis recursivamente. Se você deseja recorrer até uma certa profundidade, também pode usar o parâmetro "-Depth". Confira mais sobre Get-Childitem.

Também podemos ajustar o código para pesquisar apenas extensões de arquivo específicas.

foreach ($ arquivo em get -childitem -recurse -path/home/viktor/desktop/sample_dir/*.TXT)

eco $ arquivo

Para cada um sobre CSV
Um arquivo CSV é um banco de dados de texto de valores, cada valor separado por um delimitador (vírgula, principalmente). É uma estrutura simples, mas eficaz, para armazenar dados estruturados no formato de texto. O formato CSV é usado por vários aplicativos e mecanismos de banco de dados para conveniência e facilidade de uso.

Podemos usar o loop foreach para trabalhar com valores individuais de um arquivo CSV e agir de acordo. O exemplo a seguir faz exatamente isso.

$ valores = (Get-Content/Home/Viktor/Amostra.CSV) [0].dividir(",")
foreach ($ valor em $ valores)
eco $ valor

Método para each
Até agora, vimos o loop foreach em ação, certo? Em PowerShell, também aparece como o método foreach (). A partir de PowerShell v4, esse método existe em matrizes ou coleções de objetos. O método possui um bloco de script padrão como parâmetro que contém as ações a serem tomadas para cada iteração.

Vamos dar uma olhada no método foreach () em ação. Primeiro, crie uma amostra de matriz.

$ números = (2,4,8,16,32,64,128,256,512)

Agora, podemos chamar o método e descrever um comando de eco simples por iteração.

$ números.Para cada(
eco $ _
)

Foreach-object
O loop foreach também pode trabalhar diretamente com objetos. Para fazer isso, há um cmdlet dedicado chamado foreach-object. É preciso um objeto como entrada e itera através de seus elementos.

No próximo exemplo, procuraremos um diretório específico para “.arquivos txt ”e use foreach-object para agir com base em cada elemento do resultado da pesquisa.

$ nomes = get -childItem -recurse/home/viktor/desktop/sample_dir/*.TXT
$ nomes |
Foreach-object
eco $ _

Como você pode ver, a estrutura central do objeto foreach é bastante semelhante. A única diferença é que você pode passar o objeto usando a tubulação.

Pensamentos finais

O loop foreach em PowerShell é um loop simples, mas eficaz e poderoso. Ele pode operar com base em objetos, matrizes ou elementos individuais. Este guia demonstra algumas das implementações comuns do loop foreach.

Além do loop foreach, o PowerShell suporta outros loops padrão, como o loop for um loop. Confira este guia para loop no PowerShell.

Computação feliz!