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