Compartir a través de


Acerca de las reglas de las comillas

DESCRIPCIÓN BREVE

Describe las reglas para usar comillas simples y dobles en PowerShell.

DESCRIPCIÓN LARGA

Las comillas se usan para especificar una cadena literal. Puede incluir una cadena entre comillas simples (') o comillas dobles (").

Las comillas también se usan para crear una cadena aquí. Una cadena aquí es una cadena entre comillas simples o dobles en las que las comillas se interpretan literalmente. Una cadena aquí puede abarcar varias líneas. Todas las líneas de una cadena aquí se interpretan como cadenas, aunque no estén entre comillas.

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

CADENAS SIMPLES Y CON COMILLAS DOBLES

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

Por ejemplo:

$i = 5
"The value of $i is $i."

La salida de este comando es:

The value of 5 is 5.

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

"The value of $(2+3) is 5."

La salida de este comando es:

The value of 5 is 5.

Cuando se incluye una cadena entre comillas simples (una cadena entre comillas simples), la cadena se pasa al comando exactamente al escribirla. No se realiza ninguna sustitución. Por ejemplo:

$i = 5
'The value of $i is $i.'

La salida de este comando es:

The value $i is $i.

Del mismo modo, no se evalúan las expresiones de cadenas entre comillas simples. Se interpretan como literales. Por ejemplo:

'The value of $(2+3) is 5.'

La salida de este comando es:

The value of $(2+3) is 5.

Para evitar la sustitución de un valor de variable en una cadena entre comillas dobles, use el carácter de acento trasero (')(ASCII 96), que es el carácter de escape Windows PowerShell.

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

$i = 5
"The value of `$i is $i."

La salida de este comando es:

The value $i is 5.

Para que las comillas dobles aparezcan en una cadena, incluya toda la cadena entre comillas simples. Por ejemplo:

'As they say, "live and learn."'

La salida de este comando es:

As they say, "live and learn."

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

"As they say, 'live and learn.'"

La salida de este comando es:

As they say, 'live and learn.'

O bien, doble las comillas alrededor de una frase entre comillas dobles. Por ejemplo:

"As they say, ""live and learn."""

La salida de este comando es:

As they say, "live and learn."

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

'don''t'

La salida de este comando es:

don't

Para forzar que Windows PowerShell interpretar literalmente una comilla doble, use un carácter de acento trasero. Esto evita que Windows PowerShell interprete la comilla como delimitador de cadena. Por ejemplo:

"Use a quotation mark (`") to begin a string."

Dado que el contenido de las cadenas entre comillas simples se interpreta literalmente, no puede usar el carácter de retroceso para forzar una interpretación de caracteres literales en una cadena entre comillas simples.

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

PS C:\> 'Use a quotation mark (`') to begin a string.'
Unexpected token ')' in expression or statement.
At line:1 char:27
+ 'Use a quotation mark (`') <<<<  to begin a string.'

CADENAS HERE

Las reglas de comillas para las cadenas aquí son ligeramente diferentes.

Una cadena aquí es una cadena entre comillas simples o dobles en las que las comillas se interpretan literalmente. Una cadena aquí puede abarcar varias líneas. Todas las líneas de una cadena aquí se interpretan como cadenas aunque no estén entre comillas.

Al igual que las cadenas normales, las variables se reemplazan por sus valores en cadenas aquí con comillas dobles. En las cadenas aquí entre comillas simples, las variables no se reemplazan por sus valores.

Puede usar cadenas aquí para cualquier texto, pero son especialmente útiles para los siguientes tipos de texto:

  • Texto que contiene comillas literales
  • Varias líneas de texto, como el texto de un CÓDIGO HTML o XML
  • Texto de ayuda de un script o documento de función

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

Comillas dobles:

@"<Enter>
<string> [string] ...<Enter>
"@

Comillas simples:

@'<Enter>
<string> [string] ...<Enter>
'@

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

Una cadena aquí contiene todo el texto entre los dos caracteres ocultos. En la cadena aquí, todas las comillas se interpretan literalmente. Por ejemplo:

@"
For help, type "get-help"
"@

La salida de este comando es:

For help, type "get-help"

El uso de una cadena aquí puede simplificar el uso de una cadena en un comando. Por ejemplo:

@"
Use a quotation mark (') to begin a string.
"@

La salida de este comando es:

Use a quotation mark (') to begin a string.

En cadenas aquí entre comillas simples, las variables se interpretan literalmente y se reproducen exactamente. Por ejemplo:

@'
The $profile variable contains the path
of your Windows PowerShell profile.
'@

La salida de este comando es:

The $profile variable contains the path
of your Windows PowerShell profile.

En cadenas aquí entre comillas dobles, las variables se reemplazan por sus valores. Por ejemplo:

@"
Even if you have not created a profile,
the path of the profile file is:
$profile.
"@

La salida de este comando es:

Even if you have not created a profile,
the path of the profile file is:
C:\Users\User1\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1.

Las cadenas aquí se suelen usar para asignar varias líneas a una variable. Por ejemplo, la siguiente cadena aquí asigna una página de 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>Formats the output as a table.</maml:para>
        </maml:description>
        <command:verb>format</command:verb>
        <command:noun>table</command:noun>
        <dev:version></dev:version>
</command:details>
...
</command:command>
"@

Las cadenas aquí también son un formato práctico para la entrada al cmdlet ConvertFrom-StringData, que convierte las cadenas aquí en tablas hash. Para obtener más información, vea ConvertFrom-StringData.

CONSULTE TAMBIÉN

about_Special_Characters

ConvertFrom-StringData