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




Sumário