Avançar para o conteúdo

Noções básicas do PowerShell: programação com loops

    1651882981

    Neste tutorial do PowerShell, mostramos como usar o loop For, o loop ForEach-Object e os loops While, Do-While e Do-Until.

    Os loops do PowerShell, em sua forma mais básica, simplesmente repetem o mesmo conjunto de comandos um determinado número de vezes. Ideal para executar ações consistentes por um determinado período de tempo ou um certo número de registros, os loops podem simplificar bastante seus scripts. O PowerShell, em particular, apresenta vários cmdlets – principalmente aqueles que começam com o verbo Get – que retornam objetos contendo um grande número de dados semelhantes.

    Existem vários tipos de loops disponíveis no PowerShell e, em muitos casos, mais de uma técnica de loop pode ser usada de forma eficaz. Às vezes, é necessário determinar o tipo de loop mais eficiente, seja do ponto de vista do desempenho ou da legibilidade do código.

    Loop ForEach-Object

    Em muitos casos, usar o cmdlet ForEach-Object (discutido anteriormente em nosso artigo sobre como trabalhar com objetos do PowerShell) é a melhor maneira de percorrer um objeto. Em sua forma mais simples, ForEach-Object requer apenas um objeto para percorrer e um bloco de script contendo os comandos a serem executados em cada membro do objeto.

    Esses parâmetros podem ser especificados pelos nomes de parâmetro -InputObject e -Process ou canalizando o objeto para o cmdlet ForEach-Object e colocando o bloco de script como o primeiro parâmetro. Para ilustrar essa sintaxe básica, o exemplo a seguir mostra dois métodos de uso de ForEach-Object para percorrer o conteúdo da pasta Documentos de um usuário:

    $myDocuments = Get-ChildItem $env:USERPROFILEDocuments -File $myDocuments | ForEach-Object {$_.FullName} ForEach-Object -InputObject $myDocuments -Process {$_.FullName}

    Em certos cenários, pode ser benéfico executar uma ou mais ações imediatamente antes ou logo após a execução do loop. Os parâmetros -Begin e -End podem ser usados ​​para definir blocos de script a serem executados imediatamente antes ou depois do conteúdo do bloco de script -Process. Isso pode ser usado para definir ou modificar uma variável antes ou depois da execução do loop.

    ForEach-Object tem dois aliases, ForEach e %, e também dá suporte à sintaxe abreviada começando no PowerShell 3.0. Os três exemplos a seguir são idênticos em função.

    Get-WMIObject Win32_LogicalDisk | ForEach-Object {$_.FreeSpace} Get-WMIObject Win32_LogicalDisk | ForEach {$_.FreeSpace} Get-WMIObject Win32_LogicalDisk | % Espaço livre

    PowerShell para loop

    Os loops for normalmente são usados ​​para iterar por um conjunto de comandos um número especificado de vezes, seja para percorrer uma matriz ou objeto, ou apenas para repetir o mesmo bloco de código conforme necessário. Um loop For é construído definindo o valor de uma variável ao entrar no loop, a condição na qual o loop deve ser encerrado e uma ação a ser executada contra essa variável a cada vez que o loop for executado.

    O exemplo a seguir mostra um loop For básico usado para criar uma tabela de multiplicação:

    Para ($i=0; $i -le 10; $i++) { “10 * $i = ” + (10 * $i) }

    Os loops For podem ser usados ​​para percorrer os valores da matriz, definindo o valor inicial para o índice inicial da matriz e aumentando o valor de forma incremental até que o comprimento da matriz seja atingido. O índice da matriz é especificado colocando a variável incrementada entre colchetes imediatamente após o nome da variável, conforme mostrado no exemplo a seguir:

    $colors = @(“Vermelho”,”Laranja”,”Amarelo”,”Verde”,”Azul”,”Índigo”,”Violeta”) Para ($i=0; $i -lt $cores.Comprimento; $ i++) { $cores[$i]}

    Loops While, Do-While e Do-Until

    Um terceiro tipo de loop ao qual o PowerShell oferece suporte envolve a definição de uma condição que permite que o loop seja processado desde que a condição seja verdadeira ou até que seja atendida. Os loops while e Do-While são usados ​​para executar uma ação enquanto a condição é avaliada como $true e diferem apenas em sua sintaxe. Os loops Do-Until têm sintaxe semelhante ao Do-While, mas param de processar quando a instrução de condição é atendida.

    Os loops Do-While e Do-Until começam com a palavra-chave Do precedendo um bloco de script, seguida pela palavra-chave condition (While ou Until) e a condição. Como exemplo, os dois loops a seguir funcionam de forma idêntica, apenas a condição é invertida:

    $i=1 Faça { $i $i++ } Enquanto ($i -le 10)$i=1 Faça { $i $i++ } Até ($i -gt 10)

    Enquanto os loops são executados de forma idêntica aos loops Do-While, apenas a sintaxe é ligeiramente alterada. Os loops while usam apenas a palavra-chave While, seguida pela condição e, finalmente, o bloco de script. Esse loop é idêntico em função aos exemplos anteriores e usa a mesma condição do loop Do-While:

    $i=1 Enquanto ($i -le 10) { $i $i++ }

    Qualquer um desses três tipos de loop – Do-While, Do-Until e While – também pode ser usado para loop indefinidamente; Os loops While e Do-While com a condição definida como $true e Do-Until com a condição definida como $false.

    Em algumas situações, você pode precisar sair de um loop antecipadamente com base em algo diferente da condição de loops. Nesse caso, a palavra-chave Break pode ser invocada para sair do loop. Este exemplo final mostra a mesma funcionalidade, mas usa um loop infinito e a palavra-chave Break para sair no momento apropriado:

    $i=1 While ($true) { $i $i++ if ($i -gt 10) { Break } }

    RELACIONADO:

    Operadores de comparação do PowerShell e lógica condicional
    PowerShell: usando variáveis, matrizes e tabelas de hash
    Noções básicas do PowerShell: Gerenciando arquivos e pastas

    0 0 votes
    Rating post
    Subscribe
    Notify of
    guest
    0 comments
    Inline Feedbacks
    View all comments
    0
    Would love your thoughts, please comment.x