PowerShell: La importancia de la interacción usuario – máquina (Parte I de X)
PowerShell: La importancia de la interacción usuario – máquina (Parte II de X)
PowerShell: La importancia de la interacción usuario – máquina (Parte III de X)
En el anterior artículo se trataron las diferentes estructuras de control que se disponen en PowerShell. Hoy, se hablarán de los arrays y las tablas hash disponibles en la nueva línea de comandos. El uso de este tipo de estructuras puede simplificar y mucho el tratamiento de los datos en la shell de Microsoft.
El Array: ¿Lo de siempre?
El array es una estructura para coleccionar elementos. Cada elemento recibe una posición de memoria, por lo que el array puede verse como un vector o un número de posiciones de memoria seguidas que almacenan distintos elementos. Estos elementos reciben una posición para poder ser consultados o sobreescritos en el array.
Los arrays disponen de dimensiones, generalmente no pasan de 1 o 2 dimensiones, pero pueden tener N dimensiones. ¿Qué es una dimensión? Sencillamente indican el espacio para colocar y referenciar los elementos dentro de un array. Por ejemplo, un array de 1 dimensión, siempre será referenciado por el nombre de la variable y el índice de la posición del elemento. En un array de 2 dimensiones, ya nos encontramos con que hay que indicar fila y columna, es decir, son 2 índices lo que hay que indicar, y así sucesivamente.
Para declarar un array se utilizan distintas nomenclaturas, a continuación unos ejemplos sencillos:
PS C:\> [int[]]$array = 22,12,1986
PS C:\> $miArray2 = 1,2,3
PS C:\ > [int[][]]$miArray3 = @((14,22,2008),(1,2,3))
PS C:\ > $multiTipo = [int]1,[double]9
El primero de los ejemplos declara un array, en el cual se indica el tipo entero como elementos internos, y se inicializa con 3 valores. El segundo declara un array sin declarar el tipo, y se inicializa con 3 elementos. El tercer ejemplo declara un array de 2 dimensiones de tipo entero y lo inicializa con 2 dilas y 3 columnas. Para poder acceder a dicha información se puede ejecutar la variable $miArray3 sobre PowerShell o $miArray3[fila][columna] para acceder a un elemento concreto. En el último ejemplo, se rompe con la clásica definición de que un array es una estructura que solo almacena elementos del mismo tipo, es decir elementos homogéneos. En PowerShell se puede crear arrays multitipo, es decir, almacenan elementos de distintos tipos. En el último ejemplo se puede observar la declaración de un array que almacena como primer elemento un entero y como segundo elemento un real.
Para sobreescribir valores o añaidr valores a un array se disponen de las siguientes opciones:
$array[posicion] = <nueva valor>. Con esta instrucción, se sobreescribe un valor de una posición, siempre y cuando la posición se encuentre creada.
$array += <nuevo valor>. De esta forma se añade un nuevo valor al array en una nueva posición.

Figura 1: Declaración de array de 2 dimensiones y consultas
Las tablas hash: Dispersión en PowerShell
Una tabla hash o asociativa se encuentra implementada también en PowerShell. Es una colección de elementos a la cual no se accede mediante índice como era el caso de los arrays, sino que se accede mediante una clave o función hash. Esta clave proporciona la posición real en la tabla. En las tablas, y al igual que en los arrays, se pueden utilizar elementos heterogéneos.
El siguiente ejemplo ilustra la creación y acceso a las tablas hash:
PS C:\ > $tablaHash = @{hash1 = 22; hash2 = 1986}
PS C:\> $tablaHash
Name Value
---- -----
hash2 1986
hash1 22
PS > $tablaHash['hash1']
22
Si la clave tiene espacios, se debe especificar entre comillas simples. En la siguiente imagen se puede visualizar el ejemplo ejecutado en una PowerShell.

Figura 2: Declaración de tabla hash y asignación de valores
Hasta aquí el artículo de la serie de la importancia de la interacción usuario – máquina. En el próximo artículo se podrán atender conceptos de bucles, entre otros características interesantes de PowerShell.
Si quieres aprender más secretos, configuraciones, integraciones, desarrollo de PowerShell te recomendamos leer el libro de Pablo González y Ruben Alonso “PowerShell: La navaja suiza de los administradores de sistemas”. Si quieres aprender mucho más sobre los secretos de lo sistemas Microsoft Windows, te recomendamos leer el libro de Sergio de los Santos “Máxima Seguridad en Windows: Secretos Técnicos” y, por último, te recordamos que si te ha gustado el artículo puedes suscribirte al Canal RSS de Windows Técnico para estar al día de las novedades e información técnica de interés.
[ACTUALIZADO]: Descárgate la versión de evaluación final de Windows Server 2012 y comprueba todas las novedades del nuevo sistema operativo Servidor de Microsoft.

Enviado
sep 05 2012, 12:40
por
Pablo González