TÓPICO
about_Arrays
DESCRIÇÃO RESUMIDA
Descreve uma estrutura de dados compacta para armazenar elementos de dados
DESCRIÇÃO LONGA
Uma matriz é uma estrutura de dados para armazenar um conjunto de
elementos de dados do mesmo tipo. O Windows PowerShell oferece
suporte a elementos de dados, como string, int (números inteiros
de 32 bits), long (números inteiros de 64 bits), bool (Booleano),
byte e outros tipos de objetos Microsoft .NET Framework.
CRIANDO E INICIALIZANDO UMA MATRIZ
Para criar e inicializar uma matriz, atribua vários valores a uma
variável.
Os valores armazenados na matriz são delimitados por uma vírgula
e separados do nome da variável pelo operador de atribuição (=).
Por exemplo, para criar uma matriz chamada $A que contenha os
sete valores numéricos (int) 22, 5, 10, 8, 12, 9 e 80, digite:
$A = 22,5,10,8,12,9,80
Você também pode criar e inicializar uma matriz usando o operador de
intervalo (..). Por exemplo, para criar e inicializar uma matriz
chamada "$B" que contenha os valores de 5 a 8, digite:
$B = 5..8
Como resultado, $B contém quatro valores: 5, 6, 7 e 8.
Quando nenhum tipo de dados for especificado, o Windows PowerShell
criará cada matriz como uma matriz de objetos (digite: object []).
Para determinar o tipo dos dados de uma matriz, use o método GetType().
Por exemplo, para descobrir o tipo de dados da matriz $a, digite:
$a.gettype()
Para criar uma matriz de um tipo forte, isto é, uma matriz que
possa conter apenas valores de um tipo específico, converta a
variável como um tipo de matriz, como string[], long[] ou
int32[]. Para converter uma matriz, coloque antes do nome da
variável um tipo de matriz entre colchetes. Por exemplo, para
criar uma matriz de números inteiros de 32 bits chamada $ia que
contenha quatro inteiros (1500, 2230, 3350 e 4000), digite:
[int32[]]$ia = 1500,2230,3350,4000
Como resultado, a matriz $ia pode conter apenas números inteiros.
Você pode criar matrizes que são convertidas em qualquer tipo
compatível no Microsoft .NET Framework. Por exemplo, os objetos que Get-Process
recupera para representar processos são do tipo System.Diagnostics.Pro
cess. Para criar uma matriz de um tipo forte de objetos de processo,
digite o seguinte comando:
[Diagnostics.Process[]]$zz = Get-Process
Você pode popular uma matriz usando a saída de um cmdlet, de uma
função ou de uma instrução. Por exemplo, a seguinte instrução cria uma
matriz que contém os processos que começam com as letras "co" e que
estão em execução no computador atual:
$LocalProcesses = get-process co*
Se a instrução obtiver apenas um único processo, a variável
$LocalProcesses não será uma matriz. Para assegurar que o comando
crie uma matriz, use o operador de subexpressão de matriz, @, conforme
mostrado no seguinte exemplo:
$LocalProcesses = @(get-process co*)
Até mesmo se o comando retornar um único processo, a variável
$LocalProcesses é uma matriz. Até mesmo se ele tiver um só membro,
você poderá tratá-lo como qualquer outra matriz. Por exemplo,
você pode adicionar outros objetos a ele. Para obter mais
informações, consulte about_Operators.
LENDO UMA MATRIZ
Você pode se referir a uma matriz usando o nome de sua variável,
como $A ou $a. O Windows PowerShell não diferencia maiúsculas de
minúsculas.
Para exibir todos os elementos na matriz, digite o nome da matriz.
Por exemplo:
$a
Você pode se referir aos elementos de uma matriz usando um índice,
começando na posição 0. Coloque o número do índice entre colchetes.
Por exemplo, para exibir o primeiro elemento da matriz $a, digite:
$a[0]
Para exibir o terceiro elemento da matriz $a, digite:
$a[2]
Números negativos são contados a partir do final da matriz. Por
exemplo, "-1" se refere ao último elemento da matriz. Para exibir
os últimos três elementos da matriz, digite:
$a[-3..-1]
No entanto, seja cauteloso ao usar essa notação.
$a[0..-2]
Esse comando não se refere a todos os elementos da matriz, com exceção do último.
Refere-se ao primeiro, último e segundo ao último elementos da matriz.
Você pode usar o operador de intervalo para exibir um subconjunto
de todos os valores de uma matriz. Por exemplo, para exibir os
elementos de dados nas posições de índice de 1 a 3, digite:
$a[1..3]
Você pode usar o operador de adição (+) para combinar um
intervalo com uma lista de elementos em uma matriz. Por exemplo,
para exibir os elementos nas posições de índice 0, 2 e 4 a 6, digite:
$a[0,2+4..6]
Para determinar quantos itens há em uma matriz, combine o
intervalo com a propriedade de tamanho de uma matriz. Por
exemplo, para exibir os elementos das posições de índice de 2 até
o final da matriz, digite:
$a[2..($a.length-1)]
O tamanho é definido como -1 porque o índice começa na posição 0.
Portanto, em uma matriz de três elementos (1,2,3), o índice do
terceiro elemento é 2, um a menos que o tamanho da matriz.
Você também pode usar construções de loop, como loops Foreach,
For e While, para se referir aos elementos de uma matriz. Por
exemplo, para usar um loop Foreach para exibir os elementos na
matriz $a, digite:
foreach ($element in $a) {$element}
O loop Foreach itera na matriz, retornando cada valor, até
atingir o fim dela.
O loop For é útil quando você está aumentando contadores ao
examinar os elementos de uma matriz. Por exemplo, para retornar
valores alternados de uma matriz usando um loop For, digite:
for ($i = 0; $i -le ($a.length - 1); $i += 2) {$a[$i]}
Você pode usar um loop While para exibir os elementos de uma
matriz até que uma condição definida não seja mais verdadeira.
Por exemplo, para exibir os elementos da matriz $a enquanto o
índice da matriz for menor que 4, digite:
$i=0
while($i -lt 4) {$a[$i]; $i++}
Para saber mais sobre as propriedades e os métodos de uma matriz,
como a propriedade Length e o método SetValue, use o parâmetro
InputObject do cmdlet Get-Member. Quando você canaliza uma matriz
para Get-Member, ele exibe informações sobre os objetos da
matriz. Quando você usa o parâmetro InputObject, ele exibe
informações sobre a matriz.
Para encontrar as propriedades e os métodos da matriz $a, digite:
get-member -inputobject $a
MANIPULANDO UMA MATRIZ
Você pode alterar os elementos de uma matriz, adicionar um
elemento a uma matriz e combinar os valores de duas matrizes em
uma terceira.
Para alterar o valor de um elemento específico de uma matriz,
especifique o nome da matriz e o índice do elemento que deseja
alterar e use o operador de atribuição (=) para especificar um
novo valor para o elemento. Por exemplo, para alterar o valor do
segundo item da matriz $a (posição de índice 1) para 10, digite:
$a[1] = 10
Você também pode usar o método SetValue de uma matriz para
alterar um valor. O exemplo a seguir altera o segundo valor
(posição de índice 1) da matriz $a para 500:
$a.SetValue(500,1)
Você também pode acrescentar um elemento a uma matriz existente
usando o operador +=.
Esse operador adiciona a um valor existente. Quando o operador é
usado em um elemento de uma matriz, ele aumenta o valor do
elemento. Quando o operador é usado na própria matriz, ele
acrescenta o valor. Por exemplo, para acrescentar um elemento com
um valor igual a 200 à matriz $a, digite:
$a += 200
Não é fácil excluir elementos de uma matriz, mas você pode criar
uma nova matriz que contenha apenas elementos selecionados de uma
matriz existente. Por exemplo, para criar a matriz $t com todos
os elementos na matriz $a, com exceção do valor na posição de
índice 2, digite:
$t = $a[0,1 + 3..($a.length - 1)]
Para combinar duas matrizes em uma única, use o operador de
adição (+). O exemplo a seguir cria duas matrizes, combina ambas
e exibe a matriz combinada resultante.
$x = 1,3
$y = 5,9
$z = $x + $y
Como resultado, a matriz $z contém 1, 3, 5 e 9.
Para excluir uma matriz, use o cmdlet Remove-Item para excluir a
variável que contém a matriz. O seguinte comando especifica o
elemento "a" na unidade Variable:
remove-item variable:a
(Para obter mais informações sobre a unidade Variable:,
consulte o tópico da Ajuda Provedor de variável.)
CONSULTE TAMBÉM
about_Assignment_Operators
about_Hash_Tables
about_Operators
about_For
about_Foreach
about_While