Lors de l'inclusion d'un caractère de citation littéral à l'intérieur d'une chaîne citée dans Powershell, comment puis-je échapper au caractère de citation pour indiquer qu'il s'agit d'un littéral au lieu d'un séparateur de chaîne?
Lors de l'inclusion d'un caractère de citation littéral à l'intérieur d'une chaîne citée dans Powershell, comment puis-je échapper au caractère de citation pour indiquer qu'il s'agit d'un littéral au lieu d'un séparateur de chaîne?
Réponses:
De help about_quoting_rules
Pour que les guillemets doubles apparaissent dans une chaîne, placez la chaîne entière entre guillemets simples. Par exemple:
'As they say, "live and learn."'
Le résultat de cette commande est:
As they say, "live and learn."
Vous pouvez également inclure une chaîne entre guillemets dans une chaîne entre guillemets. Par exemple:
"As they say, 'live and learn.'"
Le résultat de cette commande est:
As they say, 'live and learn.'
Pour forcer Windows PowerShell à interpréter littéralement un guillemet double, utilisez un caractère de type point de repère. Cela empêche Windows PowerShell d'interpréter le guillemet comme un délimiteur de chaîne. Par exemple:
"Use a quotation mark (`") to begin a string."
Le résultat de cette commande est:
Use a quotation mark (") to begin a string.
Étant donné que le contenu des chaînes entre guillemets est interprété littéralement, vous ne pouvez pas utiliser le caractère backtick pour forcer une interprétation de caractère littéral dans une chaîne entre guillemets.
L'utilisation du caractère en forme de coche pour échapper aux autres guillemets dans des chaînes entre guillemets n'est pas prise en charge dans les versions récentes de PowerShell. Dans les versions antérieures de PowerShell, le caractère d'échappement backtick pouvait être utilisé pour échapper à un double guillemet dans une chaîne entre guillemets, comme indiqué dans le help about_quoting
document disponible dans ces versions de PowerShell.
'As they say, ''live and learn.'''
résultats As they say, 'live and learn.'
, les mêmes que votre deuxième exemple.
Le personnage d'échappement dans Powershell est le "` "(apostrophe / tombe en arrière).
Ceci peut être utilisé pour échapper des guillemets et des caractères spéciaux (par exemple, tab est `t).
bash
utilisateurs fous. (Le cmd.exe
personnage d'évasion est ^
)
Pour compléter ce qui a déjà été fourni ici, vous devez également savoir que vous pouvez échapper à un devis (simple ou double) avec le devis lui-même. Cela signifie que vous pouvez faire ceci:
"Voici un exemple de" "chaîne entre guillemets" "."
et ça:
"Cette fois, c'est" "une seule citation". "
L'avantage de cette syntaxe est simple: il est plus facile de taper deux fois la même citation que d'échapper à une citation avec un backtick.
un 'texte' unique pour qu'il soit traité comme un texte littéral, puis échappez à tout caractère spécial en utilisant "\"
Par exemple, cette chaîne: "comme on dit," vivre et apprendre "" devient cette chaîne "comme on dit, \" vivre et apprendre. "
PowerShell.exe -Command
et essayez de passer des guillemets doubles dans le paramètre (car, techniquement, c'est CMD qui y échappe, mais qui est valide dans le paramètre de commande). imgur.com/1btjoQW
about_quoting
aide non plus. Lancer Powershell v5.1. Échapper aux guillemets ou imbriquer différents types de guillemets fonctionne toujours comme prévu.