You are on page 1of 5

TEMA

about_Arrays
DESCRIPCIN BREVE
Estructura de datos compacta para almacenar elementos de datos
DESCRIPCIN DETALLADA
Una matriz consiste en una estructura de datos para almacenar una
coleccin de elementos de datos del mismo tipo. Windows
PowerShell admite elementos de datos, como string, int (entero de
32 bits), long (entero de 64 bits), bool (booleano), byte y otros
tipos de objetos de Microsoft .NET Framework .
CREAR E INICIALIZAR UNA MATRIZ
Para crear e inicializar una matriz, debe asignar varios valores a una
variable.
Los valores almacenados en la matriz estn delimitados con una coma y
separados del nombre de la variable por el operador de asignacin (=).
Por ejemplo, para crear una matriz denominada $A que contenga los
siete valores numricos (int) 22, 5, 10, 8, 12, 9 y
80, escriba:
$A = 22,5,10,8,12,9,80
Tambin puede crear e inicializar una matriz con el operador de
intervalo (..). Por ejemplo, para crear e inicializar una matriz
llamada $B que contenga los valores del 5 al 8, escriba:
$B = 5..8
Como resultado, la matriz $B contiene cuatro valores: 5, 6, 7 y 8.
Cuando no se especifica el tipo de datos, Windows PowerShell crea cada
matriz como una matriz de objetos (tipo: object[]). Para determinar
el tipo de datos de una matriz, use el mtodo GetType(). Por ejemplo,
para determinar el tipo de datos de la matriz $a, escriba:
$a.gettype()
Para crear una matriz con establecimiento inflexible de tipos (es
decir, una matriz que pueda contener nicamente valores de un
determinado tipo), convierta la variable como un tipo de matriz,
por ejemplo, string[], long[] o int32[]. Para convertir una matriz,
el nombre de la variable debe ir precedido de un tipo de matriz
especificado entre corchetes. Por ejemplo, para crear una matriz de
enteros de 32 bits denominada $ia y que contenga cuatro enteros
(1500, 2230, 3350 y 4000), escriba:
[int32[]]$ia = 1500,2230,3350,4000
Como resultado, la matriz $ia puede contener solo nmeros enteros.
Puede crear matrices que se conviertan en cualquier tipo
compatible en Microsoft .NET Framework. Por ejemplo, los objetos que
Get-Process
recupera para representar procesos son del tipo System.Diagnostics.
Process. Para crear una matriz de objetos de proceso con establecimiento
inflexible de tipos, escriba el siguiente comando:
[Diagnostics.Process[]]$zz = Get-Process
Puede rellenar una matriz utilizando la salida de un cmdlet, una
funcin o una instruccin. Por ejemplo, la instruccin siguiente
crea una matriz que contiene los procesos que comienzan por las
letras "co" y que se estn ejecutando en el equipo actual:
$LocalProcesses = get-process co*
Si la instruccin obtiene un nico proceso, la variable
$LocalProcesses no ser una matriz. Para asegurarse de que el
comando cree una matriz, se utiliza el operador de subexpresin
de matriz, @, como se muestra en el ejemplo siguiente:
$LocalProcesses = @(get-process co*)
Aunque el comando devuelva un nico proceso, la variable
$LocalProcesses es una matriz. Aunque tenga un solo miembro, es
posible tratarla como cualquier otra matriz. Por ejemplo, se le pueden
agregar otros objetos. Para obtener ms informacin, vea about_Operators.

LEER UNA MATRIZ
Puede hacer referencia a una matriz mediante el nombre de variable
correspondiente, como $A o $a. Windows PowerShell no distingue entre
maysculas y minsculas.
Para mostrar todos los elementos de la matriz, se escribe su
nombre. Por ejemplo:
$a
Es posible hacer referencia a los elementos de una matriz
mediante un ndice, con el inicio en la posicin 0. El nmero de
ndice debe especificarse entre corchetes. Por ejemplo, para
mostrar el primer elemento de la matriz $a, escriba:
$a[0]
Para mostrar el tercer elemento de la matriz $a, escriba:
$a[2]
Los nmeros negativos se aplican desde el final de la matriz. Por
ejemplo, "-1" hace referencia al ltimo elemento de la matriz.
Para mostrar los tres ltimos elementos de la matriz, escriba:
$a[-3..-1]
No obstante, proceda con precaucin cuando use esta notacin.
$a[0..-2]
Este comando no hace referencia a todos los elementos de la matriz, solo al
ltimo elemento.
Hace referencia a los elementos primero, ltimo y penltimo de la
matriz.

Puede usar el operador de intervalo para mostrar un subconjunto
de todos los valores de una matriz. Por ejemplo, para mostrar los
elementos de datos en las posiciones de ndice del 1 al 3, escriba:
$a[1..3]
El operador de suma (+) se puede usar para combinar un intervalo
con una lista de elementos de una matriz. Por ejemplo, para
mostrar los elementos de las posiciones de ndice 0, 2 y del 4 al
6, escriba:
$a[0,2+4..6]
Para determinar cuntos elementos contiene una matriz, se combina el
intervalo con la propiedad length de la matriz. Por ejemplo, para
mostrar los elementos desde la posicin de ndice 2 al final de
la matriz, escriba:
$a[2..($a.length-1)]
La propiedad length est establecida en -1 porque el ndice
comienza en la posicin 0. Por tanto, en una matriz de tres elementos
(1,2,3), el ndice del tercer elemento es 2, uno menos que la
longitud de la matriz.
Tambin se pueden usar construcciones de bucle, como bucles
Foreach, For y While, para hacer referencia a los elementos de
una matriz. Por ejemplo, para usar un bucle Foreach a fin de
mostrar los elementos de la matriz $a, escriba:
foreach ($element in $a) {$element}
El bucle Foreach recorre la matriz en iteracin y devuelve cada
valor de sta hasta llegar al final de la misma.
El bucle For es til cuando se usan contadores que aumentan
mientras se examinan los elementos de una matriz. Por ejemplo,
para devolver los valores de una matriz de forma alternada (es
decir, uno s y otro no) mediante un bucle For, escriba:
for ($i = 0; $i -le ($a.length - 1); $i += 2) {$a[$i]}
Puede usar un bucle While para mostrar los elementos de una
matriz hasta que una condicin definida deje de ser verdadera.
Por ejemplo, para mostrar los elementos de la matriz $a mientras
el ndice de la misma sea inferior a 4, escriba:
$i=0
while($i -lt 4) {$a[$i]; $i++}
Para obtener informacin acerca de las propiedades y los mtodos
de una matriz, como la propiedad Length y el mtodo SetValue, se
usa el parmetro InputObject del cmdlet Get-Member. Cuando se
canaliza una matriz a Get-Member, se muestra informacin acerca de los
objetos de la matriz. Cuando se usa el parmetro InputObject, se muestra
informacin acerca de la matriz.
Para buscar las propiedades y mtodos de la matriz $a, escriba:
get-member -inputobject $a
MANIPULAR UNA MATRIZ
Es posible cambiar los elementos de una matriz, agregarle elementos y
combinar los valores de dos matrices en una tercera.
Para cambiar el valor de un elemento concreto de una matriz, se
especifican el nombre de esta ltima y el ndice del elemento que
se desea cambiar. A continuacin, se usa el operador de
asignacin (=) para especificar el nuevo valor del elemento. Por
ejemplo, para cambiar el valor del segundo elemento de la matriz $a
(posicin de ndice 1) a 10, escriba:
$a[1] = 10
Tambin puede usar el mtodo SetValue de una matriz para cambiar
un valor. En el siguiente ejemplo se cambia el segundo valor
(posicin de ndice 1) de la matriz $a a 500:
$a.SetValue(500,1)
Puede anexar un elemento a una matriz existente mediante el
operador +=.
Este operador suma a un valor existente. Cuando el operador se
aplica a un elemento de una matriz, aumenta el valor del
elemento. Si el operador se aplica a la propia matriz, anexa el
valor. Por ejemplo, para anexar un elemento con el valor 200 a la
matriz $a, escriba:
$a += 200
No resulta fcil eliminar elementos de una matriz, pero se puede
crear una nueva que contenga nicamente los elementos
seleccionados de una matriz existente. Por ejemplo, para crear la
matriz $t con todos los elementos de la matriz $a excepto el
valor de la posicin de ndice 2, escriba:
$t = $a[0,1 + 3..($a.length - 1)]
Para combinar dos matrices en una sola, se usa el operador de
suma (+). En el siguiente ejemplo se crean dos matrices, se las
combina y, a continuacin, se muestra la matriz combinada resultante.
$x = 1,3
$y = 5,9
$z = $x + $y
Como resultado, la matriz $z contiene 1, 3, 5 y 9.
Si se desea eliminar una matriz, se puede usar el cmdlet
Remove-Item para eliminar la variable que contiene la matriz. El
siguiente comando especifica el elemento "a" en la unidad Variable:.
remove-item variable:a
(Para obtener ms informacin acerca de la unidad Variable:, vea el tema de
Ayuda del proveedor Variable.)
VEA TAMBIN
about_Assignment_Operators
about_Hash_Tables
about_Operators
about_For
about_Foreach
about_While

You might also like