Ao incluir um caractere de citação literal dentro de uma seqüência de caracteres citada no Powershell, como faço para escapar do caractere de citação para indicar que é um literal, em vez de um delímetro de seqüência de caracteres?
Ao incluir um caractere de citação literal dentro de uma seqüência de caracteres citada no Powershell, como faço para escapar do caractere de citação para indicar que é um literal, em vez de um delímetro de seqüência de caracteres?
Respostas:
De help about_quoting_rules
Para fazer aspas duplas aparecerem em uma seqüência, coloque a seqüência inteira entre aspas simples. Por exemplo:
'As they say, "live and learn."'
A saída deste comando é:
As they say, "live and learn."
Você também pode colocar uma sequência de aspas simples em uma sequência de aspas duplas. Por exemplo:
"As they say, 'live and learn.'"
A saída deste comando é:
As they say, 'live and learn.'
Para forçar o Windows PowerShell a interpretar aspas duplas literalmente, use um caractere de bastão. Isso impede que o Windows PowerShell interprete as aspas como um delimitador de seqüência de caracteres. Por exemplo:
"Use a quotation mark (`") to begin a string."
A saída deste comando é:
Use a quotation mark (") to begin a string.
Como o conteúdo de cadeias de caracteres entre aspas simples é interpretado literalmente, não é possível usar o caractere backtick para forçar uma interpretação literal de caracteres em uma cadeia de caracteres entre aspas simples.
O uso do caractere backtick para escapar de outras aspas em seqüências de caracteres entre aspas simples não é suportado nas versões recentes do PowerShell. Nas versões anteriores do PowerShell, o caractere de escape do backtick poderia ser usado para escapar de um caractere de aspas duplas em uma única cadeia de caracteres entre aspas, conforme detalhado no help about_quoting
documento disponível nessas versões do PowerShell.
'As they say, ''live and learn.'''
produz As they say, 'live and learn.'
o mesmo que o seu segundo exemplo.
O caractere de escape no Powershell é o "` "(apóstrofo / sepultura ao contrário).
Isso pode ser usado para escapar de aspas e também de caracteres especiais (por exemplo, tab é `t).
bash
usuários loucos. (O cmd.exe
caractere de escape é ^
)
Para complementar o que já foi fornecido aqui, você também deve saber que pode escapar de uma cotação (simples ou dupla) com a própria cotação. Isso significa que você pode fazer isso:
"Aqui está um exemplo de uma" "string de aspas duplas" "."
e isto:
'Desta vez é' 'aspas simples' '.'
A vantagem que essa sintaxe oferece é simples: é mais fácil digitar a mesma cotação duas vezes do que escapar de uma cotação com um backtick.
'texto' único, para que seja tratado como texto literal, e escape de qualquer caractere especial usando "\"
por exemplo: Esta string: "Como se costuma dizer," viva e aprenda "." Torna-se essa string 'Como se costuma dizer, "viva e aprenda."
PowerShell.exe -Command
e tentando passar aspas duplas no parâmetro (como, tecnicamente, o CMD está escapando, mas é válido no parâmetro de comando). imgur.com/1btjoQW
about_quoting
ajuda. Executando o powershell v5.1. Escolher aspas duplas ou aninhar diferentes tipos de aspas ainda funciona conforme o esperado.