TEMA
    about_Quoting_Rules

DESCRIPCIÓN BREVE
    Describe las reglas referentes al uso de comillas simples y 
    dobles en Windows PowerShell.


DESCRIPCIÓN DETALLADA
    Las comillas se utilizan para especificar una cadena literal. 
    Puede escribir una cadena entre comillas simples (') o entre 
    comillas dobles (").
 

    Las comillas también se utilizan para crear una cadena multilínea 
    intercalada en el código. Una cadena multilínea intercalada en el 
    código es una cadena entre comillas simples o dobles que se 
    interpretan de manera literal. Este tipo de cadena puede abarcar 
    varias líneas. Todas estas líneas se interpretan como cadenas, 
    aunque no estén entre comillas.


    En los comandos remotos, las comillas definen las partes del 
    comando que se ejecutan en el equipo remoto. En una sesión 
    remota, las comillas determinan también si las variables de un 
    comando se interpretan primero en el equipo local o en el equipo 
    remoto.


 Cadenas entre comillas simples o dobles

      Si escribe una cadena entre comillas dobles, los nombres de 
      variables precedidos de un signo de dólar ($) se reemplazan con 
      el valor de la variable antes de que se pase la cadena al 
      comando para su procesamiento.
 

      Por ejemplo:

          $i = 5
          "El valor de $i es $i."


      El resultado de este comando es el siguiente: 

          El valor de 5 es 5.


      Asimismo, en una cadena entre comillas dobles, se evalúan las 
      expresiones y se inserta el resultado en la cadena. Por ejemplo:

	  "El valor de $(2+3) es 5."


      El resultado de este comando es el siguiente:

	  El valor de 5 es 5.


      Si escribe una cadena entre comillas simples, la cadena se 
      pasará al comando exactamente como la escribió. No se realiza 
      ninguna sustitución. Por ejemplo:

          $i = 5
          'El valor de $i es $i.'


      El resultado de este comando es el siguiente: 

          El valor de $i es $i.


      De manera similar, no se evalúan las expresiones en las cadenas 
      que se encuentran entre comillas simples. Se interpretan como 
      literales. Por ejemplo:

	  'El valor de $(2+3) es 5.'


      El resultado de este comando es el siguiente:

	  El valor de $(2+3) es 5.


      Para evitar que se reemplace un valor de variable en una cadena 
      entre comillas dobles, utilice el carácter de acento grave (`) 
      (ASCII 96), que es el carácter de escape de Windows PowerShell.


      En el siguiente ejemplo, el carácter de acento grave que 
      precede a la primera variable $i evita que Windows PowerShell 
      reemplace el nombre de la variable por su valor. Por ejemplo:

          $i = 5
          "El valor de `$i es $i."


      El resultado de este comando es el siguiente: 

          El valor de $i es 5.
     
    
      Para que aparezcan comillas dobles en una cadena, escriba toda 
      la cadena entre comillas simples. Por ejemplo:

          'Como dicen, "nunca te acostarás sin saber una cosa más".'


      El resultado de este comando es el siguiente:

          Como dicen, "nunca te acostarás sin saber una cosa más".


      También puede escribir una cadena entre comillas simples en una 
      cadena entre comillas dobles. Por ejemplo:

          "Como dicen, 'nunca te acostarás sin saber una cosa más'."


      El resultado de este comando es el siguiente:

          Como dicen, 'nunca te acostarás sin saber una cosa más'.


      O bien, duplique las comillas alrededor de una frase que se 
      encuentra entre comillas dobles. Por ejemplo:

          "Como dicen, ""nunca te acostarás sin saber una cosa más""."


      El resultado de este comando es el siguiente:

          Como dicen, "nunca te acostarás sin saber una cosa más".


      Para incluir comillas simples en una cadena entre comillas simples, 
      utilice una segunda comilla simple consecutiva. Por ejemplo:

          'un niño ''tranquilo'''


      El resultado de este comando es el siguiente:

          un niño 'tranquilo'


      Para obligar a Windows PowerShell a interpretar literalmente 
      las comillas dobles, utilice un carácter de acento grave. De 
      este modo, Windows PowerShell no interpreta la comilla como un 
      delimitador de cadena. Por ejemplo:

          "Usar una comilla (`") para comenzar una cadena."


      Dado que el contenido de las cadenas entre comillas simples se 
      interpreta literalmente, no se puede usar el carácter de acento 
      grave para que se interpreten literalmente los caracteres en 
      una cadena entre comillas simples.

 
      Por ejemplo, el comando siguiente genera un error porque 
      Windows PowerShell no reconoce el carácter de escape. En su 
      lugar, interpreta la segunda comilla como final de la cadena.


	  PS C:\> 'Usar una comilla (`') para comenzar una cadena.'
          Símbolo (token) inesperado ')' en la expresión o la instrucción.
          En línea:1 carácter:27
          + 'Usar una comilla (`') <<<< para comenzar una cadena.'


 Cadenas multilínea intercaladas en el código que se encuentran entre 
 comillas simples o dobles

      Las reglas referentes al uso de comillas para las cadenas multilínea 
      intercaladas en el código son ligeramente diferentes.


      Una cadena multilínea intercalada en el código es una cadena 
      entre comillas simples o dobles que se interpretan de manera 
      literal. Este tipo de cadena puede abarcar varias líneas. Todas 
      estas líneas se interpretan como cadenas, aunque no estén entre 
      comillas.


      Al igual que en las cadenas normales, las variables se 
      reemplazan con sus valores en las cadenas multilínea 
      intercaladas en el código que se encuentran entre comillas 
      dobles. En las cadenas multilínea intercaladas en el código que 
      se encuentran entre comillas simples, las variables no se 
      reemplazan con sus valores.

 
      Puede utilizar este tipo de cadenas para cualquier texto, pero 
      resultan particularmente útiles para los siguientes tipos de texto:

          - Texto que contiene comillas literales; 
          - varias líneas de texto, como el texto de un documento HTML o XML; 
          - y el texto de la Ayuda de un script o una función.


      Una cadena multilínea intercalada en el código puede tener 
      cualquiera de los formatos siguientes, donde <Entrar> 
      representa el carácter oculto de avance de línea o línea nueva 
      que se agrega al presionar la tecla ENTRAR.
 

      Formato 1:

	  @"<Entrar>
          <cadena> [cadena] ...<Entrar>
          "@


      Formato 2:
 
	  @'<Entrar>
          <cadena> [cadena] ...<Entrar>
          '@


      En ambos formatos, la comilla de cierre debe ser el primer 
      carácter de la línea. 

   
      Una cadena multilínea intercalada en el código contiene todo el 
      texto que se encuentra entre los dos caracteres ocultos.
      En este tipo de cadena, todas las comillas se interpretan literalmente.
      Por ejemplo:

	  @"
	  Para obtener ayuda, escriba "get-help"
	  "@

    
      El resultado de este comando es el siguiente:

	  Para obtener ayuda, escriba "get-help"


      Si utiliza una cadena multilínea intercalada en el código, 
      puede simplificar el uso de una cadena en un comando. Por ejemplo:

	  @"
          Usar una comilla (') para comenzar una cadena.
          "@

	    
      El resultado de este comando es el siguiente:

          Usar una comilla (') para comenzar una cadena.


      En las cadenas multilínea intercaladas en el código que se 
      encuentran entre comillas simples, las variables se interpretan 
      literalmente y se reproducen exactamente como se escriben. Por 
      ejemplo:

          @'
	  La variable $profile contiene la ruta de acceso
          de su perfil de Windows PowerShell.
          '@


      El resultado de este comando es el siguiente:

	  La variable $profile contiene la ruta de acceso
          de su perfil de Windows PowerShell.


      En las cadenas multilínea intercaladas en el código que se 
      encuentran entre comillas dobles, las variables se reemplazan 
      con sus valores. Por ejemplo:

	  @" 
          Incluso si no ha creado un perfil, la ruta de acceso del 
          archivo de perfil es:
          $profile.
          "@

    
      El resultado de este comando es el siguiente:

	  Incluso si no ha creado un perfil,
	  la ruta de acceso del archivo de perfil es:
	  C:\Users\User01\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1.


      Las cadenas multilínea intercaladas en el código se suelen 
      utilizar para asignar varias líneas a una variable. Por 
      ejemplo, la siguiente cadena multilínea intercalada en el 
      código asigna una página XML a la variable $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" 
        xmlns:dev="https://schemas.microsoft.com/maml/dev/2004/10">
 	    <command:details>
	    	    <command:name>
                       Format-Table
		    </command:name>
		    <maml:description>
			<maml:para>Aplica al resultado el formato de tabla.</maml:para> 
		    </maml:description>
		    <command:verb>format</command:verb>
		    <command:noun>table</command:noun>
		    <dev:version></dev:version>
 	    </command:details>
        ...
        </command:command>
        "@
   

      Las cadenas multilínea intercaladas en el código también 
      resultan útiles para proporcionar datos al cmdlet 
      ConvertFrom-StringData, que convierte estas cadenas en tablas 
      hash. Para obtener más información, vea ConvertFrom-StringData.


VEA TAMBIÉN
    about_Escape_Characters
    ConvertFrom-StringData




Tabla de contenido