RUBRIQUE
    about_Hash_Tables

DESCRIPTION COURTE
    Décrit comment créer, utiliser et trier des tables de hachage 
    dans Windows PowerShell.


DESCRIPTION LONGUE
    Une table de hachage, également appelée " dictionnaire " ou " tableau 
    associatif ", est une structure de données compacte qui stocke une ou 
    plusieurs paires nom/valeur. Par exemple, une table de hachage peut 
    contenir une série de noms et d'ID employé, une série de noms 
    d'ordinateur et d'adresses IP ou une série d'ID de message et de 
    textes de message.
 

    Les tables de hachage sont fréquemment utilisées pour leur 
    efficacité dans la recherche et la récupération de données. Vous 
    pouvez utiliser des tables de hachage pour stocker des listes et 
    créer des propriétés calculées dans Windows PowerShell. De plus, 
    Windows PowerShell comporte une applet de commande, 
    ConvertFrom-StringData, qui convertit des chaînes en table de 
    hachage.


  Création de tables de hachage
      Les éléments d'une table de hachage sont disposés en paires 
      nom/valeur, comme suit :


          Msg1="Veuillez entrer votre mot de passe."
          Msg2="Le paramètre Path est obligatoire." Msg3="L'alias de 
          Get-Command est gcm." 

      Les valeurs sont mappées ou associées aux noms de sorte que 
      lorsque vous envoyez le nom, Windows PowerShell renvoie la valeur.


      Dans Windows PowerShell, la syntaxe d'une table de hachage est 
      comme suit :

 
          @{ <nom> = <valeur>; [<nom> = <valeur> ] ...}


      Lorsque vous créez une table de hachage, suivez ces quelques 
      règles :


          - Commencez la table de hachage par un signe arobase (@).

          - Mettez la table de hachage entre accolades ({}).

          - Entrez une ou plusieurs paires nom-valeur pour le contenu 
            de la table de hachage.

          - Utilisez un signe égal (=) pour séparer chaque nom de sa 
            valeur.

          - Utilisez un point-virgule (;) pour séparer les paires 
            nom/valeur.

          - Si un nom ou une valeur contient des espaces, 
            mettez-le/la entre guillemets.


      Par exemple, une table de hachage des messages utilisateur 
      précédents serait comme suit :


          @{
          Msg1="Veuillez entrer votre mot de passe.";
          Msg2="Le paramètre Path est obligatoire."; 
          Msg3="L'alias de Get-Command est gcm."; 
          }


      Pour utiliser une table de hachage dans des scripts et des 
      commandes, enregistrez-la dans une variable. La valeur de la 
      variable est un objet de table de hachage (System.Collections.Ha
      shtable) et chaque nom des paires nom/valeur est une propriété 
      de l'objet de table de hachage.


      Les commandes suivantes enregistrent la table de hachage de messages 
      utilisateur dans la variable $a et utilisent la méthode de point pour 
      afficher les valeurs. 


          C:\PS> $a = @{
          >> Msg1="Veuillez entrer votre mot de passe.";
          >> Msg2="Le paramètre Path est obligatoire.";
          >> Msg3="L'alias de Get-Command est gcm.";
          >> }



          C:\PS> $a
          Nom                           Valeur
          ----                           -----
          Msg1                    Veuillez entrer votre mot de passe.
          Msg3                    L'alias de Get-Command est gcm.
          Msg2                    Le paramètre Path est obligatoire.

          C:\PS> $a.Msg1
          Veuillez entrer votre mot de passe.


      Les tables de hachage ne sont pas limitées à un type de 
      données. Vous pouvez entrer tout type de données dans une table 
      de hachage, et vous pouvez combiner des types de données dans 
      une même table. Par exemple, vous pouvez générer une table de 
      hachage contenant un nombre entier, un appel à une applet de 
      commande et une chaîne.


  Tri de tables de hachage
      Pour trier la table de hachage alphabétiquement par les clés ou les 
      valeurs, utilisez la méthode GetEnumerator de tables de hachage pour 
      obtenir les clés et valeurs de la table, puis utilisez l'applet de 
      commande Sort-Object pour les trier.


      Par exemple, la commande suivante trie la table de hachage de $a 
      alphabétiquement par les clés.


          C:\PS> $a.getenumerator() | sort-object -property key

          Nom                            Valeur
          ----                           -----
          Msg1                           Veuillez entrer votre mot de passe.
          Msg2                           Le paramètre Path est obligatoire.
          Msg3                           L'alias de Get-Command est gcm.


      La commande suivante utilise la même méthode pour trier les 
      valeurs de hachage dans l'ordre décroissant.


          C:\PS> $a.getenumerator() | sort-object -property value 
          -descending

          Nom                            Valeur
          ----                           -----
          Msg2                           Le paramètre Path est obligatoire.
          Msg3                           L'alias de Get-Command est gcm.
          Msg1                           Veuillez entrer votre mot de passe.



  ConvertFrom-StringData
      L'applet de commande ConvertFrom-StringData convertit une 
      chaîne (string ou here-string) de paires nom/valeur en table de 
      hachage. Vous pouvez utiliser l'applet de commande 
      ConvertFrom-StringData sans risque dans la section Data d'un 
      script et l'utiliser avec l'applet de commande Import-LocalizedD
      ata pour afficher des messages utilisateur dans la culture 
      d'interface utilisateur de l'utilisateur actuel.


      Les chaînes here-string sont particulièrement utiles lorsque 
      les valeurs de la table de hachage incluent des guillemets. 
      (Pour plus d'informations sur les chaînes here-string, consultez 
      about_Quoting_Rules.)


      L'exemple suivant indique comment créer une chaîne here-string 
      à partir des messages utilisateur de l'exemple précédent et comment 
      utiliser ConvertFrom-StringData pour la convertir en table de hachage.


      La commande suivante crée une chaîne here-string à partir des paires 
      nom/valeur, puis l'enregistre dans la variable $string.


          C:\PS> $string = @"
          Msg1="Veuillez entrer votre mot de passe."
          Msg2="Le paramètre Path est obligatoire." Msg3="L'alias de 
          Get-Command est gcm." 
          "@

   
    Cette commande utilise l'applet de commande ConvertFrom-StringData
    pour convertir la chaîne here-string en table de hachage.


        C:\PS> convertfrom-stringdata $string

        Nom                            Valeur
        ----                           -----
        Msg3                           "L'alias de Get-Command est gcm."
        Msg2                           "Le paramètre Path est obligatoire."
        Msg1                           "Veuillez entrer votre mot de passe."


VOIR AUSSI
    about_Arrays
    about_Quoting_Rules
    about_Script_Internationalization 
    ConvertFrom-StringData
    Import-LocalizedData
    




Table des matières