Vamos a dedicar un capítulo a un tipo de dato que nos vamos a encontrar a menudo en PowerShell, como pueden ser los Arrays y un tipo especial de tablas como son las HashTables.
Un array es una colección de objetos. Los objetos de la colección no tienen por que ser del mismo tipo.
PowerShell trata cualquier lista separada por comas como una tabla
1 |
$array = 1,2,3,4,5 |
Cuando obtenemos como resultado de un comando un conjunto de objetos, estos se muestran en una tabla
Podemos crear un array con un solo elemento
1 |
$array1 = ,1 |
o la podemos crear vacía
1 |
$array2 = @() |
Para comprobar si algo es un array
1 |
$array -is [array] |
Podemos ver que cualquier cmdlet puede devolver un array como resultado
1 2 |
$procesos = Get-Process $procesos -is [array] |
Para mostrar el contenido del array tenemos que tener en cuenta los siguiente:
- Al escribir el array se muestra automáticamente todos sus elementos
1 |
$array |
1 |
foreach (item in $array) { $item } |
- Podemos hacer referencia a uno o a varios de los elementos del array con la notación [i]. Empezando por el 0, para el primer elemento, 1 para el segundo …Si queremos acceder al último elemento podemos hacerlo indicando como índice -1
1 2 3 4 |
$array[0] $array[1] $array[-1] $array[1..3] |
Manejar el array
Añadir un elemento a un array
Utilizamos el operador += para añadir un elemento al final del array
1 2 |
$array += 5..10 $array += "Once", "Doce", "Trece", "Catorce", "Quince" |
Eliminar un elemento de un array
No es posible borrar un elemento de un array y no hay métodos u operadores para hacerlo. La mejor opción sería crear uno nuevo con los elementos que queremos mantener.
HashTable
Es una colección de objetos que relaciona claves con valores de forma que podamos acceder al valor a través de la clave que tiene asociada.
Podemos crear una HashTable de la siguiente manera
1 |
$hash = @{Clave=Valor; Clave2=Valor2; Clave3=Valor3} |
También podemos crear una HashTable vacia
1 |
$hash = @{} |
Podemos modificar, añadir y eliminar los elementos de una HashTable
Por defecto una HashTable no tiene orden. Los elementos se muestran en orden aleatorio. PowerShell 3.0 ha introducido el atributo [Ordered]
1 2 |
$hash = @{Clave=Valor; Clave2=Valor2; Clave3=Valor3} $hash = [Ordered]@{Clave=Valor; Clave2=Valor2; Clave3=Valor3} |
Podemos acceder a cada uno de los elementos de la tabla indicando la clave
1 2 |
$hash.Clave $hash.Clave2 |
Podemos asignar un nuevo valor a una clave
1 |
$hash.Clave = Valor1 |
Para añadir un nuevo elemento utilizamos el método Add(Clave, Valor) La clave tiene que ser única, por lo que antes de añadir el elemento es recomendable comprobar si existe la clave.
1 |
$hash.Add("Clave4"="Valor4") |
Para eliminar un elemento utilizamos el método Remove(Clave)
1 |
$hash.Remove("Clave") |
Podemos utilizar el método Clear() para borrar todos los elementos
1 |
$hash.Clear() |
Temas
- Introducción
- Instalación y requerimientos
- Ayuda
- Ampliando la funcionalidad
- Canalización
- Operadores
- Comandos básicos
- Formato de salida
- Importar y Exportar datos
- Arrays y HashTables
- Ejecución de Scripts
- Providers
- Trabajos
- Scripts y funciones
- Gestión de Errores
Te ha gustado la entrada SGUENOS EN TWITTER O INVITANOS A UN CAFE?