Partager via


ConvertFrom-StringData

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

Syntaxe

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

Description

La cmdlet ConvertFrom-StringData convertit une chaîne qui contient une ou plusieurs paires clé et valeur dans une table de hachage. Étant donné que chaque paire clé/valeur doit se trouver sur une ligne distincte, les chaînes ici sont souvent utilisées comme format d’entrée.

La cmdlet ConvertFrom-StringData est considérée comme une applet de commande sécurisée qui peut être utilisée dans la section DATA d’un script ou d’une fonction. Lorsqu’elle est utilisée dans une section DATA, le contenu de la chaîne doit être conforme aux règles d’une section DATA. Pour plus d’informations, consultez about_Data_Sections.

ConvertFrom-StringData prend en charge les séquences de caractères d’échappement autorisées par les outils de traduction automatique classiques. Autrement dit, l’applet de commande peut interpréter les barres obliques inverses (\) en tant que caractères d’échappement dans les données de chaîne à l’aide de la Regex.Unescape,, au lieu du caractère backtick Windows PowerShell (') qui signale normalement la fin d’une ligne dans un script. À l’intérieur de la chaîne ici, le caractère backtick ne fonctionne pas. Vous pouvez également conserver une barre oblique inverse littérale dans vos résultats en l’échappant avec une barre oblique inverse précédente, comme suit : \\. Les caractères de barre oblique inverse non échapées, tels que ceux couramment utilisés dans les chemins d’accès aux fichiers, peuvent s’afficher en tant que séquences d’échappement illégales dans vos résultats.

Exemples

Exemple 1 : Convertir une chaîne ici entre guillemets uniques en table de hachage

PS C:\> $Here = @'
Msg1 = The string parameter is required.
Msg2 = Credentials are required for this command.
Msg3 = The specified variable does not exist.
'@
PS C:\> 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.

Ces commandes convertissent une chaîne de messages utilisateur entre guillemets uniques en table de hachage. Dans une chaîne entre guillemets unique, 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 ici et l’enregistre dans la variable $Here.

La deuxième commande utilise l’applet de commande ConvertFrom-StringData pour convertir la chaîne ici dans la variable $Here en table de hachage.

Exemple 2 : Convertir une chaîne ici entre guillemets doubles en table de hachage

PS C:\> $P = @"
ISE = Windows PowerShell Integrated Scripting Environment
"@
PS C:\> $P | Get-Member
TypeName: System.String

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

PS C:\> $Hash = ConvertFrom-StringData -StringData $P
PS C:\> $Hash | Get-Member
TypeName: System.Collections.Hashtable
Name              MemberType            Definition
----              ----------            ----------
Add               Method                System.Void Add(Object key, Object

Ces commandes montrent que ConvertFrom-StringData convertit en réalité une chaîne ici en table de hachage.

La première commande crée une chaîne ici 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 montre que $P est une chaîne (System.String).

La troisième commande utilise l’applet de commande ConvertFrom-StringData pour convertir la chaîne ici dans $P en table de hachage. La commande stocke le résultat dans la variable $Hash.

La commande finale 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 : Convertir une chaîne ici en table de hachage

PS C:\> ConvertFrom-StringData -StringData @'
Name = Disks.ps1

# Category is optional.

Category = Storage
Cost = Free
'@
Name                           Value
----                           -----
Cost                           Free
Category                       Storage
Name                           Disks.ps1

Cette commande convertit une chaîne ici entre guillemets unique qui contient plusieurs paires clé/valeur en table de hachage.

Dans cette commande, la valeur du paramètre StringData est une chaîne ici, au lieu d’une variable qui contient une chaîne ici. L’un ou l’autre format est valide.

La chaîne ici inclut un commentaire sur l’une des chaînes. Les commentaires sont valides dans des chaînes, à condition que le commentaire se trouve sur une ligne différente d’une paire clé/valeur.

Exemple 4 : Convertir une chaîne en table de hachage

PS C:\> $A = ConvertFrom-StringData -StringData "Top = Red `n Bottom = Blue"
PS C:\> "Top = " + $A.Top
Top = Red PS C:\> "Bottom = " + $A.Bottom
Bottom = Blue

Cet exemple convertit une chaîne entre guillemets doubles standard (et non une chaîne ici) en table de hachage et l’enregistre dans la variable $A.

Pour satisfaire la condition que chaque paire clé/valeur doit se trouver sur une ligne distincte, elle 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 commandes restantes affichent la sortie.

Exemple 5 : Utiliser ConvertFrom-StringData dans la section DONNÉES d’un script

PS C:\> $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.
'@
}
PS C:\> $TextMsgs.Text001
The $Notebook variable contains the name of the user's system notebook. PS C:\> $TextMsgs.Text002
The $MyNotebook variable contains the name of the user's private notebook.

Cet exemple montre une commande ConvertFrom-StringData utilisée dans la section DATA d’un script. Les instructions sous la section DATA affichent le texte à l’utilisateur.

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

Exemple 6 : Utiliser l’opérateur de pipeline pour passer une chaîne

PS C:\> $Here = @'
Msg1 = The string parameter is required.
Msg2 = Credentials are required for this command.
Msg3 = The specified variable does not exist.
'@
PS C:\> $Hash = $Here | ConvertFrom-StringData
PS C:\> $Hash
Name     Value
----     -----
Msg3     The specified variable does not exist.
Msg2     Credentials are required for this command.
Msg1     The string parameter is required.

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

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

La commande finale affiche le contenu de la variable $Hash.

Exemple 7 : Utiliser des caractères d’échappement pour ajouter de nouvelles lignes et retourner des caractères

PS C:\> ConvertFrom-StringData @"
Vincentio = Heaven doth with us as we with torches do,\nNot light them for themselves; for if our virtues\nDid not go forth of us, 'twere all alike\nAs if we had them not.
Angelo = Let there be some more test made of my metal,\nBefore so noble and so great a figure\nBe stamp'd upon it.
"@ | Format-List
Name  : Angelo

Value : Let there be some more test made of my metal,
        Before so noble and so great a figure
        Be stamp'd upon it.

Name  : Vincentio
Value : Heaven doth with us as we with torches do,
        Not light them for themselves; for if our virtues
        Did not go forth of us, 'twere all alike
        As if we had them not.

Cet exemple montre l’utilisation de caractères d’échappement pour créer de nouvelles lignes et retourner des caractères dans ConvertFrom-StringData. Dans cet exemple, la séquence d’échappement \n est utilisée pour créer de nouvelles lignes dans un bloc de texte (la valeur, dans la table de hachage résultante) associée à un nom ou à un élément (le nom, dans la table de hachage résultante).

Exemple 8 : Utiliser un caractère d’échappement de barre oblique inverse pour afficher correctement un chemin d’accès au fichier

PS C:\> ConvertFrom-StringData "Message=Look in c:\\Windows\\System32"
Name                           Value
----                           -----
Message                        Look in c:\Windows\System32

Cet exemple montre comment utiliser le caractère d’échappement de barre oblique inverse dans les données de chaîne pour permettre à un chemin d’accès de fichier de s’afficher correctement dans le ConvertFrom-StringData table de hachage. La barre oblique inverse double garantit que les caractères de barre oblique inverse littéral s’affichent correctement dans la sortie de la table de hachage.

Paramètres

-StringData

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

La valeur de ce paramètre doit être une chaîne placée entre guillemets simples, une chaîne placée entre guillemets doubles ou une chaîne ici qui contient une ou plusieurs paires clé/valeur. Chaque paire clé/valeur doit se trouver sur une ligne distincte, ou chaque paire doit être séparée par des caractères de nouvelle ligne ('n).

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

Une chaîne ici est une chaîne composée d’une ou plusieurs lignes dans lesquelles les guillemets sont interprétés littéralement. Pour plus d’informations, consultez about_Quoting_Rules.

Type:String
Position:0
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:True
Accepter les caractères génériques:False

Entrées

String

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

Sorties

Hashtable

Cette applet de commande retourne une table de hachage qu’elle crée à partir des paires clé/valeur.

Notes

  • Une chaîne ici est une chaîne composée d’une ou plusieurs lignes dans lesquelles les guillemets sont interprétés littéralement.

    Cette applet de commande peut être utile dans les scripts qui affichent des messages utilisateur dans plusieurs langues parlées. Vous pouvez utiliser les tables de hachage de style dictionnaire pour isoler les chaînes de texte du code, telles que dans les fichiers de ressources, et mettre en forme les chaînes de texte à utiliser dans les outils de traduction.