Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Brève description
Explique les sections data, qui isolent les chaînes de texte et d’autres données en lecture seule de la logique de script.
Description longue
Les scripts conçus pour PowerShell peuvent avoir une ou plusieurs sections data qui contiennent uniquement des données. Vous pouvez inclure une ou plusieurs sections data dans n’importe quel script, fonction ou fonction avancée. Le contenu de la section data est limité à un sous-ensemble spécifié du langage de script PowerShell.
La séparation des données de la logique de code facilite l’identification et la gestion de la logique et des données. Il vous permet d’avoir des fichiers de ressources de chaîne distincts pour le texte, tels que les messages d’erreur et les chaînes d’aide. Il isole également la logique de code, ce qui facilite les tests de sécurité et de validation.
Dans PowerShell, vous pouvez utiliser la section data pour prendre en charge l’internationalisation des scripts. Vous pouvez utiliser data sections pour faciliter l’isolation, la localisation et le traitement des chaînes qui peuvent être traduites dans d’autres langues.
La section data a été ajoutée à la fonctionnalité PowerShell 2.0.
Syntaxe
La syntaxe d’une section data est la suivante :
data [<variable-name>] [-SupportedCommand <cmdlet-name>] {
<Permitted content>
}
Le mot clé data est requis. Il ne doit pas respecter pas la casse. Le contenu autorisé est limité aux éléments suivants :
Tous les opérateurs PowerShell, sauf
-matchInstructions
if,elseetelseifVariables automatiques suivantes :
$PSCulture, ,$PSUICulture$true,$falseet$nullCommentaires
Pipelines
Instructions séparées par des points-virgules (
;)Littéraux, tels que les suivants :
a 1 1,2,3 "PowerShell 2.0" @( "red", "green", "blue" ) @{ a = 0x1; b = "great"; c ="script" } @' <p> Hello, World </p> '@Applets de commande autorisées dans une
datasection par défaut. Par défaut, seule l’appletConvertFrom-StringDatade commande est autorisée.Applets de commande que vous autorisez dans une section
dataà l’aide du paramètre-SupportedCommand.
Lorsque vous utilisez le cmdlet ConvertFrom-StringData dans une section data, vous pouvez entourer les paires clé-valeur (key-value) avec des chaînes entre guillemets simples ou doubles, ou avec des here-strings entre guillemets simples ou doubles. Toutefois, les chaînes qui contiennent des variables et des sous-expressions doivent être placées entre des chaînes à guillemet unique ou dans des chaînes ici entre guillemets simples afin que les variables ne soient pas développées et que les sous-expressions ne soient pas exécutables.
-SupportedCommand
Le paramètre SupportedCommand vous permet d’indiquer qu’une applet de commande ou une fonction génère uniquement des données. Il est conçu pour permettre aux utilisateurs d’inclure des applets de commande et des fonctions dans une section data qu’ils ont écrits ou testés.
La valeur de SupportedCommand est une liste séparée par des virgules d’une ou plusieurs applets de commande ou noms de fonction.
Par exemple, la section data suivante inclut une applet de commande écrite par l’utilisateur, Format-Xml, qui met en forme les données dans un fichier XML :
data -SupportedCommand Format-Xml
{
Format-Xml -Strings string1, string2, string3
}
Utilisation d’une section data
Pour utiliser le contenu d’une section data, affectez-le à une variable et utilisez la notation des variables pour accéder au contenu.
Par exemple, la section data suivante contient une commande ConvertFrom-StringData qui convertit la chaîne ici en table de hachage. La table de hachage est affectée à la $TextMsgs variable.
La variable $TextMsgs ne fait pas partie de la section data.
$TextMsgs = data {
ConvertFrom-StringData -StringData @'
Text001 = Windows 7
Text002 = Windows Server 2008 R2
'@
}
Pour accéder aux clés et valeurs de la table de hachage, $TextMsgsutilisez les commandes suivantes.
$TextMsgs.Text001
$TextMsgs.Text002
Vous pouvez également placer le nom de la variable dans la définition de la section data. Par exemple :
data TextMsgs {
ConvertFrom-StringData -StringData @'
Text001 = Windows 7
Text002 = Windows Server 2008 R2
'@
}
$TextMsgs
Le résultat est le même que l’exemple précédent.
Name Value
---- -----
Text001 Windows 7
Text002 Windows Server 2008 R2
Exemples
Chaînes de données simples.
data {
"Thank you for using my PowerShell Organize.pst script."
"It is provided free of charge to the community."
"I appreciate your comments and feedback."
}
Chaînes qui incluent des variables autorisées.
data {
if ($null) {
"To get help for this cmdlet, type Get-Help New-Dictionary."
}
}
Chaîne à guillemet unique qui utilise l’applet ConvertFrom-StringData de commande :
data {
ConvertFrom-StringData -StringData @'
Text001 = Windows 7
Text002 = Windows Server 2008 R2
'@
}
Chaîne ici entre guillemets doubles qui utilise l’applet ConvertFrom-StringData de commande :
data {
ConvertFrom-StringData -StringData @"
Msg1 = To start, press any key.
Msg2 = To exit, type "quit".
"@
}
Section de données qui inclut une applet de commande écrite par l’utilisateur qui génère des données :
data -SupportedCommand Format-Xml {
Format-Xml -Strings string1, string2, string3
}