Al encontrarte con las tablas hash por primera vez, es posible que te preguntes qué son y cómo desempeñan un papel crucial en tus scripts o comandos. ¡No te preocupes! Este tutorial te cubre para comenzar a usar tablas hash en PowerShell.
En pocas palabras, las tablas hash te permiten almacenar y manipular datos utilizando pares de clave-valor, a los que se puede acceder de manera rápida y eficiente. Y en este tutorial, aprenderás los conceptos básicos de las tablas hash y cómo utilizarlas en tus scripts y comandos de PowerShell.
Sigue leyendo y comienza a expandir tu conjunto de habilidades con las tablas hash de PowerShell.
Prerrequisitos
Este tutorial será una demostración práctica. Para seguirlo, asegúrate de tener un sistema con PowerShell v5+ instalado y configurado. Este tutorial utiliza Windows 10 con PowerShell 7, pero otras versiones de PowerShell y Windows también funcionarán.
Creación de una tabla hash en PowerShell
Recuperar datos específicos puede convertirse en una situación de “buscar una aguja en un pajar” en algún momento. Pero con las tablas hash, puedes buscar rápidamente elementos particulares en una extensa colección de datos.
En PowerShell, las tablas hash son estructuras de datos flexibles utilizadas de diversas maneras, como almacenar datos de configuración, pasar argumentos a cmdlets y almacenar datos en un script.
Para ver cómo funciona una tabla hash en PowerShell, primero tendrás que crear una de la siguiente manera:
1. Abra una sesión de PowerShell y ejecute el siguiente comando, que no produce salida pero declara una variable llamada name
para hacer referencia a una hashtable vacía.
Como puede ver a continuación, similar a los arrays en PowerShell, las hashtables se definen usando el símbolo @
.
2. A continuación, ejecute el siguiente comando para verificar el tipo de la variable name
(GetType()
).
El tipo de la variable name
es Hashtable, como se muestra a continuación. Esta información confirma que su hashtable se creó correctamente.

3. Después de verificar su hashtable, ejecute el siguiente código para comprobar si la hashtable está vacía o no.
El código a continuación determina si la propiedad Count
es igual (-eq
) a 0
, e imprime un mensaje correspondiente.
A continuación, puedes ver que la tabla hash está vacía ya que acabas de crearla y no hay pares de clave-valor definidos en ella.

Agregar elementos a una tabla hash de PowerShell
Acabas de crear una tabla hash de PowerShell prácticamente vacía, que solo será útil si agregas elementos. ¿Cómo? Al agregar pares de clave-valor a la tabla hash.
Similar a un array, pero en lugar de usar enteros como índices, una tabla hash de PowerShell usa claves (que pueden ser de cualquier tipo de datos) para identificar los valores. Esta característica permite una inserción rápida, recuperación y eliminación de elementos de la tabla hash, ya que la clave localiza rápidamente el valor correspondiente.
A continuación se muestra la sintaxis para agregar un par clave-valor a una tabla hash de PowerShell, donde:
$hashtable
– El nombre de la tabla hash.$key
– El nombre de la clave, que no distingue entre mayúsculas y minúsculas. Por ejemplo, “Nombre” y “nombre” serían considerados la misma clave en una tabla hash$value
– El valor a asociar con la clave.
Ejecuta el siguiente código, que no produce salida en la consola pero declara pares clave-valor, y agrégalos a tu tabla hash ($name
).
En una tabla hash, la clave te permite realizar una función de hash, que mapea la clave a una ubicación específica en la estructura de datos interna de la tabla hash.
? Los valores de la tabla hash pueden ser de cualquier tipo, como números, cadenas, arrays, objetos y otros tipos de datos como valores en una tabla hash.
Ahora, vuelve a ejecutar el código a continuación para comprobar si tu hashtable está vacío.
Como se muestra a continuación, recibirás un mensaje diciendo que el hashtable no está vacío esta vez.

Recuperar elementos de un Hashtable en PowerShell
Supongamos que estás seguro de que tu hashtable no está vacío. ¿Cómo sabes qué elementos existen en tu hashtable? Afortunadamente, también puedes recuperar elementos de tu hashtable.
Ejecuta el código a continuación para recuperar y mostrar (Write-Output
) todos los elementos de tu hashtable en pares clave-valor, uno por línea.`

Ahora, ejecuta el siguiente código para recuperar e imprimir (Write-Output
) todos los elementos de un hashtable en la consola.
? Ten en cuenta que a menudo usarás el siguiente código a lo largo de este tutorial. Puedes evitar copiar y pegar el mismo código varias veces creando una función, pero está fuera del alcance de este tutorial.
Esta vez, puedes ver indicaciones de cuáles son las claves y los valores entre los elementos enumerados.

Creación de Tablas de Hash con Valores Predefinidos
Hasta ahora, solo has visto la creación de tablas de hash vacías. Pero si sabes que ciertos valores siempre serán necesarios en tu tabla de hash, puedes crear una con valores predefinidos.
Las tablas de hash con valores predefinidos pueden ahorrarte tiempo y hacer tu código más eficiente, ya que no tienes que añadir los valores a la tabla de hash más adelante.
? Ten en cuenta que la creación de tablas de hash no produce salida. Pero no te preocupes. En este tutorial, verificarás cada tabla de hash después de su creación.
1. Ejecuta el siguiente comando para crear una tabla de hash ($hashtable1
) con tres pares de clave-valor.
2. A continuación, ejecuta el siguiente código para verificar que la nueva tabla de hash (hashtable1
) exista.
Verás que los valores para cada par clave-valor se imprimen en la pantalla como se esperaba. Esta salida confirma que los valores predefinidos están almacenados en las ubicaciones apropiadas en la tabla hash.

3. Ahora, ejecuta el siguiente código para crear una tabla hash ($hashtable2
) con valores predefinidos utilizando un bucle (o un array).
4. Por último, ejecuta el siguiente código para verificar que la nueva tabla hash (hashtable2
) se haya creado correctamente.
La salida a continuación confirma que el método de bucle funciona al crear una tabla hash con valores predefinidos. Pero dado que los elementos se enumeran aleatoriamente, pasa a la siguiente sección para una solución.

Creación de una Lista Ordenada de Elementos en Tablas Hash
Por defecto, los elementos en una tabla hash se almacenan sin un orden particular. ¿Pero qué pasa si necesitas una lista ordenada? También puedes crear una lista ordenada de elementos en tus tablas hash para organizar los datos en un orden específico.
Para crear una lista ordenada de elementos en tu tabla hash, utiliza el atributo [ordered]
de la siguiente manera:
1. Ejecute el siguiente código para crear una lista [ordered]
de elementos en una tabla hash ($hashtable3
).
2. A continuación, ejecute el siguiente código para verificar que la lista ordenada de tablas hash se haya creado correctamente.
Como se muestra a continuación, los elementos listados permanecen en el orden en que los definió al crear la tabla hash.
Algunos posibles beneficios de usar una tabla hash ordenada incluyen, entre otros, los siguientes:
Benefits | Description |
Easier to read and debug | The elements are displayed in a predictable order, which can be especially useful if you work with many elements of a large hashtable. |
Improved performance | An ordered hashtable can be more efficient when accessing elements frequently in a specific order. |

3. Por último, llame a su tabla hash ordenada ($hashtable3
) para confirmar aún más que seguirá obteniendo una lista ordenada de elementos.
La salida a continuación confirma que seguirá obteniendo una lista ordenada de elementos independientemente de cómo acceda a su tabla hash.

Actualizar elementos existentes en tablas hash
Los datos cambian constantemente y si tiene tablas hash existentes, actualizarlos es una tarea crucial. Por ejemplo, está utilizando una tabla hash para almacenar valores de configuración. Si es así, es posible que necesite actualizar el valor de una clave si cambia la configuración.
Para actualizar una tabla hash de PowerShell, el operador de asignación =
hará el truco de la siguiente manera:
1. Ejecute el siguiente comando, que no proporciona salida, pero actualiza el valor de la clave Key2
en $hashtable3
a NewValue2
.
A continuación, ejecuta el siguiente comando para Agregar()
un nuevo par clave-valor (Key4 = NuevoValor4
) al hashtable ($hashtable3
).
Agregar un nuevo par clave-valor no produce una salida como la actualización de listas existentes en los hashtable, pero verificarás los cambios en el siguiente paso.
3. Ejecuta el siguiente código para verificar que los valores de las claves en tu hashtable ($hashtable3
) han sido actualizados.

? En PowerShell, cada clave en un hashtable debe ser única. Si intentas agregar un par clave-valor que ya está en el hashtable, recibirás un error como el siguiente. Para evitar este error, salta al siguiente paso.

4. Ahora, ejecuta el siguiente código, que utiliza el método Contains()
para verificar si la clave que intentas agregar ya existe en el hashtable antes de agregar el par clave-valor.
Si la nueva clave no existe, recibirás el mensaje a continuación, diciendo que la nueva clave ha sido agregada al hashtable.

De lo contrario, como se muestra a continuación, recibirás un mensaje si la clave que estás intentando ya existe.

5. Por último, vuelve a ejecutar el código a continuación para recuperar todos los elementos en tu hashtable ($hashtable3
).
A continuación, puedes ver la clave recién añadida (Clave5) y otros elementos que has añadido hasta ahora al hashtable.

Eliminar elementos de un Hashtable
Demasiados elementos en un hashtable, especialmente los innecesarios, pueden llevar solo a confusión. Eliminar elementos que ya no son relevantes o necesarios de tu hashtable te hará un favor.
Supongamos que tu hashtable contiene una lista de usuarios y su información. Si es así, elimina usuarios de tu hashtable si ya no están activos.
Ejecuta el código a continuación para eliminar un elemento específico (Clave1
) de tu hashtable ($hashtable3
).
A continuación, la salida imprime un mensaje diciendo que la clave ha sido eliminada. Pero si la clave no existe, recibirás un mensaje diciendo que la clave no se encontró.

Ahora, ejecuta el siguiente código para verificar todos los elementos en tu hashtable y verificar si la eliminación del elemento fue exitosa.
A continuación, puede verificar que el par clave-valor con la clave ‘Key5’ ya no existe en su hashtable.

Conclusión
Con una estructura de pares clave-valor y un acceso rápido, un hashtable de PowerShell es adecuado para gestionar grandes cantidades de datos en varios escenarios. Y en este tutorial, aprendiste cómo crear, agregar, actualizar y eliminar elementos de los hashtables. Todo esto te proporciona las habilidades para usar los hashtables de manera efectiva en tus scripts.
¿Por qué no llevas tus habilidades recién adquiridas al siguiente nivel? Considera incorporar hashtables en tus scripts para tareas más avanzadas, como manipulación de datos y transformación. O experimenta con la combinación de hashtables con otras estructuras de datos en PowerShell, como matrices y objetos, para resolver problemas más complejos.