Matrizes do 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 dificilmente são suficientes para a maioria dos propósitos, especialmente quando se trata de algoritmos mais complexos.

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

Matrizes do PowerShell 101

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

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

$prime = 13

A variável pode conter qualquer tipo de dados, desde números até strings. Você só precisa usar aspas duplas ou simples para especificar uma string.

$nome = “Levin”

Agora, para criar um novo array, basta atribuir vários valores à mesma variável, separados por vírgulas. Assim:

$week = “segunda”, “terça”, “quarta”, “quinta”, “sexta”, “sábado”, “domingo”

Algumas pessoas preferem converter explicitamente uma variável em um array para evitar confusão, embora isso não seja necessário. Para fazer isso, coloque os valores entre parênteses precedidos do símbolo @.

$semana = @(“Segunda”, “Terça”, “Quarta”, “Quinta”, “Sexta”, “Sábado”, “Domingo”)

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

Criando uma matriz

Já vimos o método mais comum de criação de um array. Mas dependendo da situação, existem outras formas que podem ser mais adequadas. Por exemplo, se quiser criar um array que contenha um intervalo de números, você pode usar o operador de intervalo:

$dígitos = (0..9)

Isso criará um array de todos os dez dígitos de zero a nove. Você também pode inicializar um array vazio, caso queira apenas um local para armazenar valores posteriormente..

$valores = @()

Vários arrays podem até ser aninhados uns nos outros, embora esse tipo de uso possa ficar confuso muito rapidamente.

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

Por padrão, um array 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, o array só pode conter números inteiros. A tentativa de atribuir qualquer outro tipo de valor a ele retornará um erro. Isso pode ser útil para evitar erros simples em arrays que trabalham 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 arrays contendo vários tipos de dados. Mas como você acessa esses dados?

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

$var = $números[5]

Isso copiará o valor armazenado no índice cinco do array $numbersna variável $var. Observe que os índices do array começam a contar a partir de 0, então o primeiro item é acessado com zero.

Se tivéssemos que gerar isso, por exemplo:

“$dias[2]”

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

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

$números[1] = 0

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

$nomes += “Johny”

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

$nomes += “Charlie, Liam, Teresa”

$nomes += $sobrenomes

O método separado por vírgula também serve para acessar vários elementos do array. Inserir isto, por exemplo, armazena os primeiros cinco elementos de $daysem $weekdays..

$dias da semana = $dias[0,1,2,3,4]

Iterando através de matrizes

Acessar manualmente elementos específicos de um array é muito bom, mas se você quiser executar ações em todo o conteúdo de um array, pode ser entediante. Uma abordagem mais elegante é usar um loop For.

Os loops For podem percorrer sistematicamente todos os elementos de um array, processando cada valor de acordo com as instruções. É assim que você pode construir esse loop:

For ($i = 0 ; $i -lt $dias.Length ; $i++)
{

    $dias[$i]
}

A função array.Length retorna o tamanho do array, que é basicamente o número de elementos nele. Isso pode ser conectado ao parâmetro de expressão de teste de um loop For para iterar de forma abrangente todos os elementos.

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

Foreach ($dia em $dias)
{

    $dia
}

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

Quando você deve usar matrizes do PowerShell

A maior fonte de bugs em um script complexo são variáveis ​​referenciadas incorretamente. Isso acontece devido à presença de um grande número de variáveis ​​com nomes exclusivos, o que torna difícil lembrar sua finalidade.

A solução mais simples para esse problema é usar arrays extensivamente. Todas as variáveis ​​relacionadas de alguma forma podem ser atribuídas a um único array e acessadas através de seus números de índice.

Microsoft PowerShell principal caso de uso é a automação, e os arrays desempenham um papel fundamental nisso. Os objetos retornados pelos cmdlets do PowerShell podem ser armazenados em matrizes e iterados. Isso permite que tarefas sequenciais sejam executadas automaticamente, simplificando bastante a administração do sistema.

.

Postagens relacionadas:


1.06.2022