RUBRIQUE about_Quoting_Rules DESCRIPTION COURTE Décrit les règles d'utilisation des guillemets simples et doubles dans Windows PowerShell. DESCRIPTION LONGUE Les guillemets sont utilisés pour spécifier une chaîne littérale. Vous pouvez placer une chaîne entre guillemets simples (') ou doubles ("). Les guillemets sont également utilisés pour créer une chaîne here-string. Une chaîne here-string est une chaîne entre guillemets simples ou doubles dans laquelle les guillemets sont interprétés de manière littérale. Une chaîne here-string peut couvrir plusieurs lignes. Toutes les lignes d'une chaîne here-string sont interprétées comme des chaînes, même si elles ne sont pas placées entre guillemets. Dans les commandes pour les ordinateurs distants, les guillemets définissent les parties de la commande exécutées sur l'ordinateur distant. Dans une session à distance, les guillemets déterminent également si les variables d'une commande sont interprétées d'abord sur l'ordinateur local ou sur l'ordinateur distant. Chaînes entre guillemets simples et doubles Lorsque vous placez une chaîne entre guillemets doubles, les noms de variables précédés du signe $ sont remplacés par la valeur de la variable avant que la chaîne ne soit passée à la commande en vue de son traitement. Par exemple : $i = 5 "La valeur de $i est $i." La sortie de cette commande est : La valeur de 5 est 5. Par ailleurs, les expressions sont évaluées dans une chaîne entre guillemets doubles et le résultat est inséré dans la chaîne. Par exemple : "La valeur de $(2+3) est 5." La sortie de cette commande est : La valeur de 5 est 5. Lorsque vous placez une chaîne entre guillemets simples, la chaîne est passée à la commande exactement vous l'avez tapée. Aucune substitution n'est effectuée. Par exemple : $i = 5 'La valeur de $i est $i.' La sortie de cette commande est : La valeur de $i est $i. De la même façon, les expressions dans les chaînes entre guillemets simples ne sont pas évaluées. Elles sont interprétées comme des littéraux. Par exemple : 'La valeur de $(2+3) est 5.' La sortie de cette commande est : La valeur de $(2+3) est 5. Pour empêcher la substitution d'une valeur de variable dans une chaîne entre guillemets doubles, utilisez le caractère de backtick (`) (ASCII 96), qui est le caractère d'échappement Windows PowerShell. Dans l'exemple suivant, le caractère de backtick qui précède la première variable $i empêche Windows PowerShell de remplacer le nom de la variable par sa valeur. Par exemple : $i = 5 "La valeur de `$i est $i." La sortie de cette commande est : La valeur de $i est 5. Pour que des guillemets doubles s'affichent dans une chaîne, placez toute la chaîne entre guillemets simples. Par exemple : '"Qui vivra verra" comme on dit.' La sortie de cette commande est : "Qui vivra verra" comme on dit. Vous pouvez également placer une chaîne entre guillemets simples dans une chaîne entre guillemets doubles. Par exemple : "'Qui vivra verra' comme on dit." La sortie de cette commande est : 'Qui vivra verra' comme on dit. Vous pouvez également doubler les guillemets autour d'une expression entre guillemets doubles. Par exemple : """Qui vivra verra"" comme on dit." La sortie de cette commande est : "Qui vivra verra" comme on dit. Pour inclure un guillemet simple dans une chaîne entre guillemets simples, utilisez un deuxième guillemet simple consécutif. Par exemple : 'aujourd''hui' La sortie de cette commande est : aujourd'hui Pour forcer Windows PowerShell à interpréter un guillemet double de manière littérale, utilisez un caractère de backtick. Cela empêche Windows PowerShell d'interpréter le guillemet comme un délimiteur de chaîne. Par exemple : "Utilisez un guillemet (`") pour commencer une chaîne." Étant donné que le contenu de chaînes entre guillemets simples est interprété de manière littérale, vous ne pouvez pas utiliser le caractère de backtick pour forcer une interprétation de caractère littéral dans une chaîne entre guillemets simples. Par exemple, la commande suivante génère une erreur parce que Windows PowerShell ne reconnaît pas le caractère d'échappement. À la place, il interprète le deuxième guillemet comme la fin de la chaîne. PS C:\> 'Utilisez un guillemet (`') pour commencer une chaîne.' Jeton inattendu ')' dans une expression ou instruction. À la ligne : 1 Caractère : 27 + 'Utilisez un guillemet (`') <<<< pour commencer une chaîne.' Chaînes here-string entre guillemets simples et doubles Les règles d'utilisation des guillemets pour les chaînes here-string sont légèrement différentes. Une chaîne here-string est une chaîne entre guillemets simples ou doubles dans laquelle les guillemets sont interprétés de manière littérale. Une chaîne here-string peut couvrir plusieurs lignes. Toutes les lignes d'une chaîne here-string sont interprétées comme des chaînes, même si elles ne sont pas placées entre guillemets. Comme pour les chaînes ordinaires, les variables sont remplacées par leurs valeurs dans les chaînes here-string entre guillemets doubles. Dans les chaînes here-string entre guillemets simples, les variables ne sont pas remplacées par leurs valeurs. Vous pouvez utiliser des chaînes here-string pour n'importe quel texte, mais elles sont particulièrement utiles pour les types de texte suivants : - texte qui contient des guillemets littéraux ; - plusieurs lignes de texte, par exemple le texte dans un document HTML ou XML ; - texte d'aide pour un script ou une fonction. Une chaîne here-string peut se présenter sous les formats suivants, où <Entrée> représente le caractère masqué de saut de ligne ou de nouvelle ligne qui est ajouté quand vous appuyez sur la touche ENTRÉE. Format 1 : @"<Entrée> <string> [string] ...<Entrée> "@ Format 2 : @'<Entrée> <string> [string] ...<Entrée> '@ Sous les deux formats, le guillemet fermant doit être le premier caractère dans la ligne. Une chaîne here-string contient tout le texte entre les deux caractères masqués. Dans la chaîne here-string, tous les guillemets sont interprétés de manière littérale. Par exemple : @" Pour obtenir de l'aide, tapez "get-help" "@ La sortie de cette commande est : Pour obtenir de l'aide, tapez "get-help" L'utilisation d'une chaîne here-string peut simplifier l'utilisation d'une chaîne dans une commande. Par exemple : @" Utilisez un guillemet (') pour commencer une chaîne. "@ La sortie de cette commande est : Utilisez un guillemet (') pour commencer une chaîne. Dans les chaînes here-string entre guillemets simples, les variables sont interprétées de manière littérale et reproduites exactement. Par exemple : @' La variable $profile contient le chemin d'accès de votre profil Windows PowerShell. '@ La sortie de cette commande est : La variable $profile contient le chemin d'accès de votre profil Windows PowerShell. Dans les chaînes here-string entre guillemets doubles, les variables sont remplacées par leurs valeurs. Par exemple : @" Même si vous n'avez pas créé de profil, le chemin d'accès du fichier de profil est : $profile. "@ La sortie de cette commande est : Même si vous n'avez pas créé de profil, le chemin d'accès du fichier de profil est : C:\Users\User01\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1. Les chaînes here-string sont généralement utilisées pour attribuer plusieurs lignes à une variable. Par exemple, la chaîne here-string suivante attribue une page de données XML à la variable $page. $page = [XML] @" <command:command xmlns:maml="https://schemas.microsoft.com/maml/2004/10" xmlns:command="https://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="https://schemas.microsoft.com/maml/dev/2004/10" <command:details> <command:name> Format-Table </command:name> <maml:description> <maml:para>Met en forme la sortie en tant que tableau.</maml:para> </maml:description> <command:verb>format</command:verb> <command:noun>table</command:noun> <dev:version></dev:version> </command:details> ... </command:command> "@ Les chaînes here-string représentent également un format commode pour les entrées de l'applet de commande ConvertFrom-StringData, qui les convertit en tables de hachage. Pour plus d'informations, consultez ConvertFrom-StringData. VOIR AUSSI about_Escape_Characters ConvertFrom-StringData