Matrizes PowerShell como criá -las e usá -las

Matrizes PowerShell como criá -las e usá -las

Variáveis ​​são a estrutura de dados mais básica em qualquer tipo de codificação. Mas variáveis ​​únicas não são suficientes para a maioria dos propósitos, especialmente ao lidar com algoritmos mais complexos.

É aí que entra as matrizes. Seja C ++ ou Python, as matrizes estão presentes em todas as linguagens de programação de alguma forma. Mas e quanto ao Windows PowerShell? Como funcionam as matrizes do PowerShell? Como você os usa? Qual é a sintaxe deles? Vamos descobrir.

Índice

    Matrizes PowerShell 101

    Simplesmente falando, uma matriz é apenas uma coleção estruturada de variáveis. A idéia é eliminar o incômodo de acompanhar dezenas de nomes, colapsando variáveis ​​relacionadas em um conjunto numerado.

    No PowerShell, você pode criar uma variável precendendo o símbolo $ para um nome de variável. Por exemplo:

    $ prime = 13

    A variável pode conter qualquer tipo de dados, de números a strings. Você só precisa usar citações duplas ou únicas para especificar uma string.

    $ name = "Levin"

    Agora, para criar uma nova matriz, basta atribuir vários valores à mesma variável, separada por vírgulas. Assim:

    $ semana = "segunda -feira", "terça", "quarta -feira", "quinta -feira", "sexta -feira", "sábado", "domingo"

    Algumas pessoas preferem lançar explicitamente uma variável em uma matriz para evitar confusão, embora isso não seja necessário. Para fazer isso, coloque os valores em parênteses precedidos com o @ símbolo.

    $ semana = @("segunda -feira", "terça -feira", "quarta -feira", "quinta -feira", "sexta -feira", "sábado", "domingo")

    Isso geralmente é útil ao tentar colocar a saída de outros comandos em uma matriz, onde você não pode escrevê -los manualmente no formato correto.

    Criando uma matriz

    Já vimos o método mais comum de criar uma matriz. Mas, dependendo da situação, existem outras maneiras que podem ser mais adequadas. Por exemplo, se você deseja criar uma matriz que contenha uma variedade de números, pode usar o operador de intervalo:

    $ dígitos = (0… 9)

    Isso criará uma matriz de todos os dez dígitos de zero a nove. Você também pode inicializar uma matriz vazia, caso você queira apenas um lugar para armazenar valores mais tarde.

    $ valores = @()

    Várias matrizes podem até ser aninhadas uma na outra, embora esse tipo de uso possa ficar confuso muito rápido.

    $ coordenados = @(
        (5, 10, 23),
        (11, 7, 16)
    )

    Por padrão, uma matriz pode armazenar qualquer tipo de variável, seja números, strings ou uma mistura de ambos. Mas você pode definir explicitamente um tipo, caso queira limitar os valores colocados nele. Por exemplo:

    [int []] $ números = 2,3,4,5

    Dessa forma, a matriz só pode segurar números inteiros. Tentar atribuir qualquer outro tipo de valor a ele retornará um erro. Isso pode ser útil para evitar erros simples para matrizes, trabalhando exclusivamente com valores numéricos, pois inserir uma string em uma variável a ser usada em cálculos criará problemas.

    Acessando matrizes

    Até agora, vimos vários métodos para criar matrizes contendo vários tipos de dados. Mas como você acessa esses dados?

    As matrizes PowerShell usam o mesmo formato usado por outras linguagens de programação. Cada variável de matriz pode ser acessada pelo seu número de índice. Por exemplo:

    $ var = $ números [5]

    Isso copiará o valor armazenado no índice cinco dos $ números Array no $ var variável. Observe que os índices de matriz começam a contar de 0, então o primeiro item é acessado com zero.

    Se fôssemos emitir isso, por exemplo:

    “$ Dias [2]”

    Teremos quarta -feira, não terça -feira.

    Você pode usar esse mesmo método para modificar esses valores também. Por exemplo, o comando a seguir alterará o segundo elemento da matriz para zero:

    $ números [1] = 0

    Você também pode adicionar mais elementos a uma matriz existente em vez de alterar os valores das entradas atuais apenas adicionando -as como uma expressão aritmética.

    $ nomes += “johny”

    Este método pode ser usado para adicionar várias entradas de uma só vez, ou mesmo matrizes inteiras.

    $ nomes += “Charlie, Liam, Teresa”

    $ nomes += $ sobrenomes

    O método separado por vírgula também se mantém para acessar vários elementos da matriz. Entrar nisso, por exemplo, armazena os cinco primeiros elementos de $ dias em $ DAEM DA SEMANA.

    $ weekdays = $ dias [0,1,2,3,4]

    Iterando através de matrizes

    Acessar manualmente elementos específicos de uma matriz é boa e boa, mas se você quiser executar ações em todo o conteúdo de uma matriz, ela pode ser tediosa. Uma abordagem mais elegante é usar um loop para.

    Para loops, pode passar sistematicamente todos os elementos de uma matriz, processando cada valor de acordo com as instruções. É assim que você pode construir esse loop:

    Para ($ i = 0; $ i -lt $ dias.Comprimento ; $ i ++)

        $ dias [$ i]

    A matriz.Função de comprimento retorna o tamanho da matriz, que é basicamente o número de elementos. Isso pode ser conectado a um parâmetro de expressão de teste de loop para iterar de maneira abrangente sobre todos os elementos.

    O loop foreach e o loop foreach-object podem fazer o mesmo com um script ainda mais enxuto.

    Foreach ($ dia em US $ dias)

        $ dia

    Isso economiza o esforço de determinar o tamanho da matriz, deixando os detalhes para PowerShell lidar.

    Quando você deve usar as matrizes do PowerShell

    A maior fonte de bugs em um script complexo é incorretamente variáveis ​​referenciadas. Isso acontece devido à presença de um grande número de variáveis ​​nomeadas exclusivas, o que dificulta a lembrança de seu propósito.

    A correção mais simples para este problema é usar matrizes extensivamente. Todas as variáveis ​​relacionadas de alguma maneira podem ser atribuídas a uma única matriz e acessadas através de seus números de índice.

    O caso de uso principal do Microsoft PowerShell é a automação e as matrizes desempenham um papel fundamental nisso. Os objetos devolvidos por cmdlets do PowerShell podem ser armazenados em matrizes e iterados. Isso permite que tarefas seqüenciais sejam executadas automaticamente, simplificando bastante a administração do sistema.