ConvertFrom-StringData

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

Syntax

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

Description

L’applet ConvertFrom-StringData de commande 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. Par défaut, la clé doit être séparée de la valeur par un signe égal (=).

L’applet ConvertFrom-StringData de commande 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 (\) comme des caractères d’échappement dans les données de chaîne à l’aide de la méthode Regex.Unescape, au lieu du caractère backtick PowerShell (`) qui signale normalement la fin d’une ligne dans un script. À l'intérieur de la chaîne « ici-même », le caractère de guillemet inversé 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 sans séquence d'échappement, comme celles qui sont couramment utilisées dans les chemins d'accès, peuvent apparaître comme des séquences d'échappement non autorisées dans vos résultats.

PowerShell 7 ajoute le paramètre Délimiteur .

Exemples

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

Cet exemple convertit une chaîne de messages utilisateur entre guillemets uniques en table de hachage. Dans une chaîne entre guillemets simples, les variables ne sont pas remplacées par les valeurs et les expressions ne sont pas évaluées. L’applet ConvertFrom-StringData de commande convertit la valeur de la $Here variable en table de hachage.

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

Exemple 2 : Convertir des données de chaîne à l’aide d’un autre délimiteur

Cet exemple montre comment convertir des données de chaîne qui utilisent un caractère différent en tant que délimiteur. Dans cet exemple, les données de chaîne utilisent le caractère de canal (|) comme délimiteur.

$StringData = @'
color|red
model|coupe
year|1965
condition|mint
'@
$carData = ConvertFrom-StringData -StringData $StringData -Delimiter '|'
$carData

Name                           Value
----                           -----
condition                      mint
model                          coupe
color                          red
year                           1965

Exemple 3 : Convertir une chaîne ici contenant un commentaire

Cet exemple convertit une chaîne ici qui contient un commentaire et plusieurs paires clé-valeur dans une table de hachage.

ConvertFrom-StringData -StringData @'
Name = Disks.ps1

# Category is optional.

Category = Storage
Cost = Free
'@

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

La valeur du paramètre StringData est une chaîne ici, au lieu d’une variable qui contient une chaîne ici. Les deux formats sont valides. La chaîne « ici-même » contient un commentaire sur une des chaînes. ConvertFrom-StringDataignore les commentaire de ligne simples, mais le # caractère doit être le premier caractère non blanc sur la ligne. Tous les caractères sur la ligne après l’ignorer # .

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

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

$A = ConvertFrom-StringData -StringData "Top = Red `n Bottom = Blue"
$A

Name             Value
----             -----
Bottom           Blue
Top              Red

Pour satisfaire la condition que chaque paire clé-valeur doit se trouver sur une ligne distincte, la chaîne utilise le caractère de nouvelle ligne PowerShell (`n) pour séparer les paires.

Exemple 5 : Utiliser ConvertFrom-StringData dans la section DATA d’un script

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

$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.
'@
}
$TextMsgs

Name             Value
----             -----
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.

Comme le texte comprend des noms de variables, il doit figurer dans une chaîne entre guillemets simples pour 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 : Utiliser l’opérateur de pipeline pour passer une chaîne

Cet exemple montre que vous pouvez utiliser un opérateur de pipeline (|) pour envoyer une chaîne à ConvertFrom-StringData. La valeur de la $Here variable est redirigée vers ConvertFrom-StringData et le résultat de la $Hash variable.

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

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

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

Cet exemple montre l’utilisation de caractères d’échappement pour créer de nouvelles lignes et retourner des caractères dans les données sources. La séquence \n d’échappement est utilisée pour créer de nouvelles lignes dans un bloc de texte associé à un nom ou un élément dans la table de hachage résultante.

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.

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

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 la table de hachage résultante ConvertFrom-StringData . La double barre oblique inverse fait que les caractères de barre oblique inverse littérale s'affichent correctement dans la sortie de table de hachage.

ConvertFrom-StringData "Message=Look in c:\\Windows\\System32"

Name                           Value
----                           -----
Message                        Look in c:\Windows\System32

Paramètres

-Delimiter

Caractère utilisé pour séparer la clé des données de valeur dans la chaîne en cours de conversion. Le délimiteur par défaut est le caractère de signe égal (=). Ce paramètre a été ajouté dans PowerShell 7.

Type:Char
Position:1
Default value:'='
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-StringData

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 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. ConvertFrom-StringDataignore les commentaire de ligne uniques. Le # caractère doit être le premier caractère non blanc sur la ligne. Tous les caractères sur la ligne après l’ignorer # . 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. Les guillemets dans la chaîne ici sont interprétés littéralement dans le cadre des données de chaîne. Pour plus d’informations, consultez about_Quoting_Rules.

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

Entrées

String

Vous pouvez diriger une chaîne contenant une paire clé-valeur vers cette applet de commande.

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-même » est une chaîne composée d'une ou plusieurs lignes, dans laquelle 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 type dictionnaire pour isoler les chaînes de texte du code, comme dans des fichiers de ressources, et pour mettre en forme les chaînes de texte pour qu'elles soient utilisables dans des outils de traduction.