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