TÓPICO
about_Quoting_Rules
DESCRIÇÃO RESUMIDA
Descreve regras para o uso de aspas simples e duplas no Windows
PowerShell.
DESCRIÇÃO LONGA
As aspas são usadas para especificar uma cadeia de caracteres
literal. Você pode colocar uma cadeia de caracteres entre aspas
simples (') ou duplas (").
As aspas também são usadas para criar uma cadeia de caracteres
here. Uma cadeia de caracteres here é uma cadeia de caracteres
entre aspas simples ou duplas na qual as aspas são interpretadas
literalmente. Uma cadeia de caracteres here pode abranger várias
linhas. Todas as linhas em uma cadeia de caracteres here são
interpretadas como cadeias de caracteres, embora elas não sejam
colocadas entre aspas.
Em comandos para computação remota, as aspas definem as partes do
comando que são executadas no computador remoto. Em uma sessão
remota, as aspas determinam também se as variáveis em um comando são
interpretadas primeiro no computador local ou no computador remoto.
Cadeias de Caracteres entre Aspas Simples e Duplas
Quando você coloca uma cadeia de caracteres entre aspas duplas,
os nomes de variáveis que são precedidos por um sinal de dólar
($) são substituídos pelo valor da variável antes que a cadeia
de caracteres seja transmitida ao comando para processamento.
Por exemplo:
$i = 5
"O valor de $i é $i."
A saída desse comando é:
O valor de 5 é 5.
Além disso, em uma cadeia de caracteres entre aspas duplas, são
avaliadas expressões e o resultado é inserido na cadeia de
caracteres. Por exemplo:
"O valor de $(2+3) é 5."
A saída desse comando é:
O valor de 5 é 5.
Quando você coloca uma cadeia de caracteres entre aspas
simples, a cadeia de caracteres é transmitida para o comando
exatamente como você a digitou. Nenhuma substituição é
executada. Por exemplo:
$i = 5
O valor de $i é $i'.
A saída desse comando é:
O valor de $i é $i.
De forma semelhante, não são avaliadas expressões em cadeias de
caracteres entre aspas simples. Elas são interpretadas como
literais. Por exemplo:
'O valor de $(2+3) é 5.'
A saída desse comando é:
O valor de $(2+3) é 5.
Para impedir a substituição de um valor de variável em uma cadeia de
caracteres entre aspas duplas, use o caractere de crase (`) (ASCII 96)
que é o caractere de escape do Windows PowerShell.
No exemplo a seguir, o caractere de crase que precede a
primeira variável $i impede que o Windows PowerShell substitua
o nome da variável pelo seu valor. Por exemplo:
$i = 5
"O valor de `$i é $i".
A saída desse comando é:
O valor de $i é 5.
Para que as aspas duplas apareçam em uma cadeia de caracteres,
coloque toda a cadeia de caracteres entre aspas simples. Por
exemplo:
'Como se diz, "vivendo e aprendendo."'
A saída desse comando é:
Como dizem, "vivendo e aprendendo."
Você também pode colocar uma cadeia de caracteres entre aspas
simples em uma cadeia de caracteres entre aspas duplas. Por exemplo:
"Como se diz, 'vivendo e aprendendo.'"
A saída desse comando é:
Como se diz, 'vivendo e aprendendo.'
Ou, coloque aspas duplas em uma sentença entre aspas duplas.
Por exemplo:
"Como se diz, ""vivendo e aprendendo."""
A saída desse comando é:
Como dizem, "vivendo e aprendendo."
Para incluir aspas simples em uma cadeia de caracteres entre
aspas simples, use aspas simples consecutivas. Por exemplo:
'don''t'
A saída desse comando é:
don't
Para forçar o Windows PowerShell a interpretar aspas duplas
literalmente, use um caractere de crase. Isso evita que o
Windows PowerShell interprete as aspas como um delimitador de
cadeia de caracteres. Por exemplo:
"Use aspas (`") para começar uma cadeia de caracteres."
Pelo fato de o conteúdo das cadeias de caracteres entre aspas
simples não ser interpretado literalmente, você não pode usar o
caractere de crase para forçar uma interpretação literal em uma
cadeia de caracteres entre aspas simples.
Por exemplo, o comando a seguir gera um erro porque o Windows
PowerShell não reconhece o caractere de escape. Em vez disso,
ele interpreta a segunda aspa como o término da cadeia de
caracteres.
PS C:\> 'Use uma aspa (`') para iniciar uma cadeia de caracteres.'
Token inesperado ')' em expressão ou instrução.
At line:1 char:27
+ 'Use uma aspa (`') <<<< para iniciar uma cadeia de caracteres.'
Cadeias de Caracteres Here entre Aspas Simples e Duplas
As regras do uso de aspas em cadeias de caracteres here são
ligeiramente diferentes.
Uma cadeia de caracteres here é uma cadeia de caracteres entre
aspas simples ou duplas na qual as aspas são interpretadas
literalmente. Uma cadeia de caracteres here pode abranger
várias linhas. Todas as linhas em uma cadeia de caracteres here são
interpretadas como cadeias de caracteres embora não estejam entre aspas.
Da mesma forma que as cadeias de caracteres normais, as
variáveis são substituídas por seus valores em cadeias de
caracteres here entre aspas duplas. Nas cadeias de caracteres
here, as variáveis não são substituídas por seus valores.
Você pode usar as cadeias de caracteres here em qualquer texto,
mas elas são particularmente úteis nos seguintes tipos de texto:
- Texto que contém aspas literais Várias linhas de texto,
como o texto em um documento HTML ou XML O texto da Ajuda
para um script ou função
Uma cadeia de caracteres here pode ter qualquer um destes
formatos, onde <Enter> representa o avanço de linha ou
caractere oculto de nova linha que é adicionado quando você
pressiona a tecla ENTER.
Formato 1:
@"<Enter>
<cadeia de caracteres> [cadeia de caracteres] ...<Enter>
"@
Formato 2:
@'<Enter>
<cadeia de caracteres> [cadeia de caracteres] ...<Enter>
'@
Em qualquer formato, as aspas de fechamento devem ser o
primeiro caractere na linha.
Uma cadeia de caracteres here contém todo o texto entre os dois
caracteres ocultos.
Na cadeia de caracteres here, todas as aspas são interpretadas
literalmente.
Por exemplo:
@"
Para obter ajuda, digite "get-help"
"@
A saída desse comando é:
Para obter ajuda, digite "get-help"
O uso de uma cadeia de caracteres here pode simplificar o uso
de uma cadeia de caracteres em um comando. Por exemplo:
@"
Use uma aspa (') para iniciar uma cadeia de caracteres.
"@
A saída desse comando é:
Use uma aspa (') para iniciar uma cadeia de caracteres.
Nas cadeias de caracteres here entre aspas simples, as variáveis são
interpretadas literalmente e reproduzidas exatamente. Por exemplo:
@'
A variável $profile contém o caminho
do seu perfil do Windows PowerShell.
'@
A saída desse comando é:
A variável $profile contém o caminho
do seu perfil do Windows PowerShell.
Nas cadeias de caracteres here entre aspas duplas, as variáveis são
substituídas por seus valores. Por exemplo:
@"
Mesmo que você não tenha criado um perfil, o caminho do
arquivo de perfil será:
$profile.
"@
A saída desse comando é:
Mesmo que você não tenha criado um perfil,
o caminho do arquivo de perfil será:
C:\Users\Usuário01\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1.
Em geral, as cadeias de caracteres here são usadas para
atribuir várias linhas a uma variável. Por exemplo, a cadeia de
caracteres here a seguir atribui uma página de XML à variável $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"
<command:details>
<command:name>
Format-Table
</command:name>
<maml:description>
<maml:para>Formata a saída como uma tabela.</maml:para>
</maml:description>
<command:verb>format</command:verb>
<command:noun>table</command:noun>
<dev:version></dev:version>
</command:details>
...
</command:command>
"@
As cadeias de caracteres here também são um formato conveniente
para a entrada do cmdlet ConvertFrom-StringData que converte
cadeias de caracteres here em tabelas de hash. Para obter mais
informações, consulte ConvertFrom-StringData.
CONSULTE TAMBÉM
about_Escape_Characters
ConvertFrom-StringData