Découvrir les tables de hachage pour la première fois peut vous amener à vous demander ce qu’elles sont et quel rôle crucial elles jouent dans vos scripts ou commandes. Ne vous inquiétez pas ! Ce tutoriel vous couvre pour commencer à utiliser les tables de hachage PowerShell.
En bref, les tables de hachage vous permettent de stocker et de manipuler des données à l’aide de paires clé-valeur, auxquelles vous pouvez accéder rapidement et efficacement. Et dans ce tutoriel, vous apprendrez les bases des tables de hachage et comment les utiliser pour vos scripts et commandes PowerShell.
Lisez la suite et commencez à élargir vos compétences avec les tables de hachage PowerShell !
Prérequis
Ce tutoriel sera une démonstration pratique. Pour suivre, assurez-vous d’avoir un système avec PowerShell v5+ installé et configuré. Ce tutoriel utilise Windows 10 avec PowerShell 7, mais d’autres versions de PowerShell et de Windows fonctionneront également.
Création d’une table de hachage PowerShell
Récupérer des données spécifiques peut devenir une situation de « chercher une aiguille dans une botte de foin » à un moment donné. Mais avec les tables de hachage, vous pouvez rapidement rechercher des éléments particuliers dans une vaste collection de données.
En PowerShell, les tables de hachage sont des structures de données flexibles utilisées de nombreuses manières, telles que le stockage de données de configuration, le passage d’arguments à des cmdlets et le stockage de données dans un script.
Pour voir comment fonctionne une table de hachage PowerShell, vous devrez d’abord en créer une comme suit :
1. Ouvrez une session PowerShell et exécutez la commande suivante, qui ne produit pas de sortie mais déclare une variable appelée name
pour référencer une hashtable vide.
Comme vous pouvez le voir ci-dessous, similaire aux tableaux en PowerShell, les hashtables sont définies en utilisant le symbole @
.
2. Ensuite, exécutez la commande ci-dessous pour vérifier le type de la variable name
(GetType()
).
Le type de la variable name
est Hashtable, comme indiqué ci-dessous. Ces informations confirment que votre hashtable a été créée avec succès.

3. Après avoir vérifié votre hashtable, exécutez le code suivant pour vérifier si la hashtable est vide ou non.
Le code ci-dessous détermine si la propriété Count
est égale (-eq
) à 0
, et affiche un message correspondant.
Ci-dessous, vous pouvez voir que la table de hachage est vide puisque vous venez de la créer, et il n’y a pas de paires clé-valeur définies dedans.

Ajout d’éléments à une table de hachage PowerShell
Vous venez de créer une table de hachage PowerShell pratiquement vide, qui ne peut être utile que si vous ajoutez des éléments. Comment ? En ajoutant des paires clé-valeur à la table de hachage.
Similaire à un tableau, mais au lieu d’utiliser des entiers comme indices, une table de hachage PowerShell utilise des clés (qui peuvent être de n’importe quel type de données) pour identifier les valeurs. Cette caractéristique permet une insertion, une récupération et une suppression rapides des éléments de la table de hachage, car la clé localise rapidement la valeur correspondante.
Ci-dessous se trouve la syntaxe pour ajouter une paire clé-valeur à une table de hachage PowerShell, où :
$hashtable
– Le nom de la table de hachage.$key
– Le nom de la clé, qui sont insensibles à la casse. Par exemple, « FirstName » et « firstname » seraient considérés comme la même clé dans une table de hachage$value
– La valeur à associer à la clé.
Exécutez le code suivant, qui ne produit pas de sortie à la console mais déclare des paires clé-valeur, et ajoutez-les à votre table de hachage ($name
).
Dans une table de hachage, la clé vous permet d’effectuer une fonction de hachage, qui mappe la clé à un emplacement spécifique dans la structure de données interne de la table de hachage.
? Les valeurs de la table de hachage peuvent être de n’importe quel type, telles que des nombres, des chaînes, des tableaux, des objets, et d’autres types de données comme valeurs dans une table de hachage.
À présent, relancez le code ci-dessous pour vérifier si votre hashtable est vide.
Comme le montre ci-dessous, vous recevrez un message indiquant que le hashtable n’est pas vide cette fois-ci.

Récupération des éléments d’un hashtable PowerShell
Supposez que vous êtes sûr que votre hashtable n’est pas vide. Comment savez-vous quels éléments existent dans votre hashtable ? Heureusement, vous pouvez également récupérer des éléments de votre hashtable.
Exécutez le code ci-dessous pour récupérer et afficher (Write-Output
) tous les éléments de votre hashtable sous forme de paires clé-valeur, un par ligne.`

À présent, exécutez le code ci-dessous pour récupérer et imprimer (Write-Output
) tous les éléments dans un hashtable sur la console.
? Notez que vous utiliserez souvent le code suivant tout au long de ce tutoriel. Vous pouvez éviter de copier-coller le même code plusieurs fois en créant une fonction, mais cela sort du cadre de ce tutoriel.
Cette fois, vous pouvez voir des indications sur les clés et les valeurs parmi les éléments répertoriés.

Création de tables de hachage avec des valeurs prédéfinies
Jusqu’à présent, vous n’avez regardé que la création de tables de hachage vides. Mais si vous savez que certaines valeurs seront toujours nécessaires dans votre table de hachage, vous pouvez en créer une avec des valeurs prédéfinies.
Les tables de hachage avec des valeurs prédéfinies peuvent vous faire gagner du temps et rendre votre code plus efficace, car vous n’avez pas besoin d’ajouter les valeurs à la table de hachage plus tard.
? Remarquez que la création de tables de hachage ne produit pas de sortie. Mais ne vous inquiétez pas. Dans ce tutoriel, vous vérifierez chaque table de hachage après sa création.
1. Exécutez la commande ci-dessous pour créer une table de hachage ($hashtable1
) avec trois paires clé-valeur.
2. Ensuite, exécutez le code suivant pour vérifier que la nouvelle table de hachage (hashtable1
) existe.
Vous verrez que les valeurs pour chaque paire clé-valeur sont imprimées à l’écran comme prévu. Cette sortie confirme que les valeurs prédéfinies sont stockées dans les emplacements appropriés dans la table de hachage.

3. Maintenant, exécutez le code ci-dessous pour créer une table de hachage ($hashtable2
) avec des valeurs prédéfinies en utilisant une boucle (ou un tableau).
4. Enfin, exécutez le code ci-dessous pour vérifier que la nouvelle table de hachage (hashtable2
) a été créée avec succès.
La sortie ci-dessous confirme que la méthode de boucle fonctionne lors de la création d’une table de hachage avec des valeurs prédéfinies. Mais comme les éléments sont listés de manière aléatoire, passez à la section suivante pour une solution.

Créer une liste ordonnée d’éléments dans les tables de hachage
Par défaut, les éléments dans une table de hachage sont stockés sans ordre particulier. Mais que faire si vous avez besoin d’une liste ordonnée ? Vous pouvez également créer une liste ordonnée d’éléments dans vos tables de hachage pour organiser les données dans un ordre spécifique.
Pour créer une liste ordonnée d’éléments dans votre table de hachage, utilisez l’attribut [ordered]
comme suit:
1. Exécutez le code suivant pour créer une liste [ordered]
des éléments dans une table de hachage ($hashtable3
).
2. Ensuite, exécutez le code suivant pour vérifier que la liste ordonnée des tables de hachage a été créée avec succès.
Comme le montre ci-dessous, les éléments répertoriés restent dans l’ordre que vous avez défini lors de la création de la table de hachage.
Certains avantages possibles de l’utilisation d’une table de hachage ordonnée comprennent, mais ne se limitent pas à, les éléments suivants :
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. Enfin, appelez votre table de hachage ordonnée ($hashtable3
) pour confirmer que vous obtiendrez toujours une liste ordonnée d’éléments.
La sortie ci-dessous confirme que vous obtiendrez toujours une liste ordonnée d’éléments, quel que soit le mode d’accès à votre table de hachage.

Mise à jour des éléments existants dans les tables de hachage
Les données changent constamment et si vous avez des tables de hachage existantes, les mettre à jour est une tâche cruciale. Par exemple, si vous utilisez une table de hachage pour stocker des valeurs de configuration. Si tel est le cas, vous devrez peut-être mettre à jour la valeur d’une clé si la configuration change.
Pour mettre à jour une table de hachage PowerShell, l’opérateur d’assignation =
fera l’affaire comme suit :
1. Exécutez la commande ci-dessous, qui ne fournit pas de sortie, mais met à jour la valeur de la clé Key2
dans $hashtable3
à NewValue2
.
Ensuite, exécutez la commande ci-dessous pour Ajouter()
une nouvelle paire clé-valeur (Key4 = NewValue4
) à la table de hachage ($hashtable3
).
Ajouter une nouvelle paire clé-valeur ne produit pas de sortie comme la mise à jour des listes existantes dans les tables de hachage, mais vous vérifierez les modifications à l’étape suivante.
3. Exécutez le code suivant pour vérifier que les valeurs des clés de votre table de hachage ($hashtable3
) ont été mises à jour.

? En PowerShell, chaque clé dans une table de hachage doit être unique. Si vous essayez d’ajouter une paire clé-valeur déjà présente dans la table de hachage, vous obtiendrez une erreur comme celle ci-dessous. Pour éviter cette erreur, passez à l’étape suivante.

4. Maintenant, exécutez le code suivant, qui utilise la méthode Contains()
pour vérifier si la clé que vous essayez d’ajouter existe déjà dans la table de hachage avant d’ajouter la paire clé-valeur.
Si la nouvelle clé n’existe pas, vous obtiendrez le message ci-dessous, indiquant que la nouvelle clé a été ajoutée à la table de hachage.

Sinon, comme indiqué ci-dessous, vous recevrez un message si la clé que vous essayez d’utiliser existe déjà.

5. Enfin, relancez le code ci-dessous pour récupérer tous les éléments dans votre table de hachage ($hashtable3
).
Vous pouvez voir ci-dessous la nouvelle clé ajoutée (Key5) et les autres éléments que vous avez ajoutés jusqu’à présent à la table de hachage.

Suppression d’éléments d’une table de hachage
Trop d’éléments dans une table de hachage, surtout ceux inutiles, peuvent seulement conduire à la confusion. Supprimer les éléments qui ne sont plus pertinents ou nécessaires de votre table de hachage vous sera bénéfique.
Supposez que votre table de hachage contienne une liste d’utilisateurs et leurs informations. Si c’est le cas, supprimez les utilisateurs de votre table de hachage s’ils ne sont plus actifs.
Exécutez le code ci-dessous pour supprimer un élément spécifique (Key1
) de votre table de hachage ($hashtable3
).
En dessous, la sortie affiche un message disant que la clé a été supprimée. Mais si la clé n’existe pas, vous recevrez un message disant que la clé n’a pas été trouvée.

Maintenant, exécutez le code suivant pour vérifier tous les éléments de votre table de hachage et vérifier si la suppression de l’élément a réussi.
Ci-dessous, vous pouvez vérifier que la paire clé-valeur avec la clé « Key5 » n’existe plus dans votre hashtable.

Conclusion
Avec une structure de paire clé-valeur et un accès rapide, une table de hachage PowerShell est bien adaptée pour gérer de grandes quantités de données dans divers scénarios. Et dans ce tutoriel, vous avez appris comment créer, ajouter, mettre à jour et supprimer des éléments des tables de hachage. Tout cela vous donne les compétences pour utiliser efficacement les tables de hachage dans vos scripts.
Pourquoi ne pas pousser vos compétences nouvellement acquises au niveau supérieur ? Envisagez d’incorporer des tables de hachage dans vos scripts pour des tâches plus avancées, telles que la manipulation des données et la transformation. Ou expérimentez avec la combinaison de tables de hachage avec d’autres structures de données dans PowerShell, telles que les tableaux et les objets, pour résoudre des problèmes plus complexes ?