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