Convertit une chaîne contenant une ou plusieurs paires clé/valeur en une table de hachage.

Syntaxe

ConvertFrom-StringData [-StringData] <string> [<CommonParameters>]

Description

L'applet de commande ConvertFrom-StringData convertit une chaîne contenant une ou plusieurs paires clé/valeur en une table de hachage. Étant donné que chaque paire clé/valeur doit figurer sur une ligne distincte, des chaînes here-string sont souvent utilisées comme format d'entrée.

L'applet de commande ConvertFrom-StringData est considérée une applet de commande sécurisée qui peut être utilisée dans la section DATA d'un script ou d'une fonction. Si vous l'utilisez dans une section DATA, le contenu de la chaîne doit se conformer aux règles de cette section DATA. Pour plus d'informations, consultez about_Data_Sections.

Paramètres

-StringData <string>

Spécifie la chaîne à convertir. Vous pouvez utiliser ce paramètre ou diriger une chaîne vers ConvertFrom-StringData. Le nom de paramètre est facultatif.

La valeur de ce paramètre doit être une chaîne entourée de guillemets simples (chaîne entre guillemets simples), une chaîne entourée de guillemets doubles (chaîne entre guillemets doubles) ou une chaîne here-string contenant une ou plusieurs paires clé/valeur. Chaque paire clé/valeur doit figurer sur une ligne distincte ou être séparée par des caractères de nouvelle ligne (`n).

Vous pouvez inclure des commentaires dans la chaîne, mais ils ne peuvent pas figurer sur la même ligne qu'une paire clé/valeur. Les commentaires ne sont pas inclus dans la table de hachage.

Une chaîne here-string est une chaîne constituée d'une ou plusieurs lignes au sein desquelles les guillemets sont interprétés littéralement. Pour plus d'informations, consultez about_Quoting_Rules.

Obligatoire ?

true

Position ?

1

Valeur par défaut

Accepter l'entrée de pipeline ?

true (ByValue)

Accepter les caractères génériques ?

false

<CommonParameters>

Cette applet de commande prend en charge les paramètres courants : -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer et -OutVariable. Pour plus d'informations, consultez about_Commonparameters.

Entrées et sorties

Le type d'entrée est le type des objets que vous pouvez diriger vers l'applet de commande. Le type de retour est le type des objets que l'applet de commande retourne.

Entrées

System.String

Vous pouvez diriger une chaîne contenant une paire clé/valeur vers ConvertFrom-StringData.

Sorties

System.Collections.Hashtable

ConvertFrom-StringData retourne une table de hachage créée à partir des paires clé/valeur.

Remarques

Une chaîne here-string est une chaîne constituée d'une ou plusieurs lignes au sein desquelles les guillemets sont interprétés littéralement. Pour plus d'informations, consultez about_Quoting_Rules.

ConvertFrom-StringData peut être utile dans les scripts affichant des messages utilisateur dans plusieurs langues. Vous pouvez utiliser les tables de hachage de style dictionnaire pour isoler des chaînes de texte du code, par exemple dans les fichiers de ressources, puis mettre en forme ces chaînes de texte pour une utilisation dans des outils de traduction.

Exemple 1

C:\PS>$here = @'
Msg1 = The string parameter is required.
Msg2 = Credentials are required for this command.
Msg3 = The specified variable does not exist.
'@

C:\PS> convertfrom-stringdata -stringdata $here

Name                           Value
----                           -----
Msg3                           The specified variable does not exist.
Msg2                           Credentials are required for this command.
Msg1                           The string parameter is required.

Description
-----------
Ces commandes convertissent une chaîne here-string entre guillemets simples de messages utilisateur en une table de hachage. Dans une chaîne entre guillemets simples, les valeurs ne sont pas substituées aux variables et les expressions ne sont pas évaluées.

La première commande crée une chaîne here-string et l'enregistre dans la variable $here. 

La deuxième commande utilise l'applet de commande ConvertFrom-StringData pour convertir la chaîne here-string de la variable $here en une table de hachage.






Exemple 2

C:\PS>$p = @"
ISE = Windows PowerShell Integrated Scripting Environment
"@

C:\PS> $p | get-member

   TypeName: System.String

Name             MemberType            Definition
----             ----------            ----------
Clone            Method                System.Object Clone()
...


C:\PS> $hash = convertfrom-stringdata -stringdata $p

C:\PS> $hash | get-member

   TypeName: System.Collections.Hashtable

Name              MemberType            Definition
----              ----------            ----------
Add               Method                System.Void Add(Object key, Object
...

Description
-----------
Ces commandes montrent que ConvertFrom-StringData convertit réellement une chaîne here-string en une table de hachage.

La première commande crée une chaîne here-string entre guillemets doubles qui inclut une paire clé/valeur et l'enregistre dans la variable $p. 

La deuxième commande utilise un opérateur de pipeline (|) pour envoyer la variable $p à l'applet de commande Get-Member. Le résultat indique que $p est une chaîne (System.String).

La troisième commande utilise l'applet de commande ConvertFrom-StringData pour convertir la chaîne here-string de la variable $p en une table de hachage. La commande stocke le résultat dans la variable $hash.

La dernière commande utilise un opérateur de pipeline (|) pour envoyer la variable $hash à l'applet de commande Get-Member. Le résultat montre que le contenu de la variable $hash est une table de hachage (System.Collections.Hashtable).






Exemple 3

C:\PS>convertfrom-stringdata -stringdata @'
   Name = Disks.ps1
   # Category is optional.
   Category = Storage
   Cost = Free
'@

Name                           Value
----                           -----
Cost                           Free
Category                       Storage
Name                           Disks.ps1

Description
-----------
Cette commande convertit une chaîne here-string entre guillemets simples qui contient des paires clé/valeur en une table de hachage. 

Dans cette commande, la valeur du paramètre StringData est une chaîne here-string, au lieu d'une variable contenant une chaîne here-string. L'un et l'autre format sont valides.

La chaîne here-string inclut un commentaire sur l'une des chaînes. Il est possible d'insérer des commentaires dans les chaînes, pourvu qu'ils ne figurent pas sur la même ligne qu'une paire clé/valeur.






Exemple 4

C:\PS>$a = convertfrom-stringdata -stringdata "Top = Red `n Bottom = Blue"

C:\PS> "Top = " + $a.Top
Top = Red

C:\PS> "Bottom = " + $a.Bottom
Bottom = Blue

Description
-----------
Cet exemple convertit une chaîne entre guillemets doubles normale (pas une chaîne here-string) en une table de hachage et l'enregistre dans la variable $a.

Pour satisfaire la condition selon laquelle chaque paire clé/valeur doit figurer sur une ligne distincte, il utilise le caractère de nouvelle ligne Windows PowerShell (`n) pour séparer les paires.

Le résultat est une table de hachage de l'entrée. Les autres commandes affichent la sortie.






Exemple 5

C:\PS>$TextMsgs = DATA {
  ConvertFrom-StringData @'
	Text001 = The $Notebook variable contains the 	name of the user's system notebook.
	Text002 = The $MyNotebook variable contains the 	name of the user's private notebook.
'@
}

C:\PS> $TextMsgs.Text001
The $Notebook variable contains the name of the user's system notebook.


C:\PS> $TextMsgs.Text002
The $MyNotebook variable contains the name of the user's private notebook.

Description
-----------
Cet exemple affiche une commande ConvertFrom-StringData utilisée dans la section DATA d'un script. Les instructions au-dessous de la section DATA affichent le texte à l'utilisateur.

Étant donné que le texte inclut des noms de variables, il doit être entouré d'une chaîne entre guillemets simples afin que les variables soient interprétées littéralement, et non pas développées. Les variables ne sont pas autorisées dans la section DATA.






Exemple 6

C:\PS>$here = @'
Msg1 = The string parameter is required.
Msg2 = Credentials are required for this command.
Msg3 = The specified variable does not exist.
'@

C:\PS> $hash = $here | convertfrom-stringdata 

C:\PS> $hash

Name     Value
----     -----
Msg3     The specified variable does not exist.
Msg2     Credentials are required for this command.
Msg1     The string parameter is required.

Description
-----------
Cet exemple montre que vous pouvez utiliser un opérateur de pipeline (|) pour envoyer une chaîne à l'applet de commande ConvertFrom-StringData. 

La première commande enregistre une chaîne here-string dans la variable $here. La deuxième commande utilise un opérateur de pipeline (|) pour envoyer la variable $here à l'applet de commande ConvertFrom-StringData. La commande enregistre le résultat dans la variable $hash.

La dernière commande affiche le contenu de la variable $hash.






Voir aussi




Table des matières