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

As variáveis ​​são a estrutura de dados mais básica em qualquer tipo de codificação(any type of coding) . 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 Python , 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

Simplificando(Simply) , um array é apenas uma coleção estruturada de variáveis. A ideia é eliminar o incômodo de manter o controle de dezenas de nomes ao recolher variáveis ​​relacionadas em um conjunto numerado.

No PowerShell , você pode criar uma variável anexando o símbolo $ a 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 aspas duplas ou simples para especificar uma string.

$name = “Levin”

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

$week = “Monday”, “Tuesday”, “Wednesday”, “Thursday”, “Friday”, “Saturday”, “Sunday”

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

$week = @(“Monday”, “Tuesday”, “Wednesday”, “Thursday”, “Friday”, “Saturday”, “Sunday”)

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 um array. Mas dependendo da situação, existem outras formas que podem ser mais adequadas. Por exemplo, se você deseja criar uma matriz que contém um intervalo de números, você pode usar o operador de intervalo:

$digits = (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 queira apenas um local para armazenar valores posteriormente.

$values = @()

Várias(Multiple) matrizes podem até ser aninhadas umas nas outras, embora esse tipo de uso possa ficar confuso muito rapidamente.

$coordinates = @(
    (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[]] $numbers = 2,3,4,5

Desta forma, a matriz 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 para 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?

As matrizes do PowerShell(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 = $numbers[5]

Isso copiará o valor armazenado no índice cinco da matriz $numbers na variável $varObserve que os índices de matriz começam a contar a partir de 0, portanto, o primeiro item é acessado com zero.

Se fôssemos produzir isso, por exemplo:

“$days[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 da matriz para zero:

$numbers[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.

$names += “Johny”

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

$names += “Charlie, Liam, Teresa”

$names += $surnames

O método separado por vírgula também serve para acessar vários elementos de matriz. Digitar isso, por exemplo, armazena os primeiros cinco elementos de $days em $weekdays .

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

Iterando por meio de arrays

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 tedioso. Uma abordagem mais elegante é usar um loop For.

For loops podem passar sistematicamente por 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 $days.Length ; $i++){
    $days[$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 sobre todos os elementos.

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

Foreach ($day in $days){
    $day}

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

Quando você deve usar matrizes do PowerShell(PowerShell Arrays)

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

A correção mais simples para esse problema é usar matrizes 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.

O principal caso de uso do Microsoft PowerShell(Microsoft PowerShell’s) é 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.



About the author

Sou engenheiro de software e tenho experiência com o Microsoft Office e o navegador Chrome. Tenho conhecimento em muitos aspectos do desenvolvimento web, incluindo, mas não limitado a: HTML, CSS, JavaScript, jQuery e React. Meu interesse em trabalhar com tecnologia também significa que estou familiarizado com várias plataformas (Windows, Mac, iOS) e entendo como elas funcionam.



Related posts