Compartir a través de


Acerca de las reglas de Comillas

DESCRIPCIÓN BREVE

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

DESCRIPCIÓN LARGA

Las comillas se utilizan 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 de tipo "Here-String". Una cadena de tipo "Here-String" es una cadena con comillas simples o comillas dobles en la que las comillas se interpretan literalmente. Una cadena de tipo "Here-String" puede abarcar varias líneas. Todas las líneas de una cadena de tipo "Here-String" 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 DE COMILLAS SIMPLES Y DOBLES

Cuando se escribe 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, las expresiones se evalúan 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 escribe una cadena entre comillas simples (una cadena entre comillas simples), la cadena se pasa al comando exactamente como se escribe. 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 grave (') (ASCII 96), que es el carácter de escape de Windows PowerShell.

En el ejemplo siguiente, el carácter de acento grave 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 aparezcan comillas dobles 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 entre comillas dobles. Por ejemplo:

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

La salida de este comando es:

As they say, 'live and learn.'

O bien, haga 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 interprete literalmente una comilla doble, use un carácter de acento grave. Esto impide que Windows PowerShell interprete la comilla como un 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 acento grave para forzar una interpretación de caracteres literales 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 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.'

AQUÍ: CADENAS

Las reglas de presupuesto para las cadenas de este código son ligeramente diferentes.

Una cadena de tipo "Here-String" es una cadena con comillas simples o comillas dobles en la que las comillas se interpretan literalmente. Una cadena de tipo "Here-String" puede abarcar varias líneas. Todas las líneas de una cadena de tipo "Here-String" se interpretan como cadenas aunque no estén entre comillas.

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

Puede usar las 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 en un código HTML o XML
  • El texto de ayuda para un script o un documento de función

Una cadena de tipo "Here-String" puede tener cualquiera de los siguientes formatos, donde <Enter> representa el carácter oculto de avance de línea o de nueva línea que se agrega cuando se presiona 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 de tipo "Here-String" contiene todo el texto entre los dos caracteres ocultos. En la cadena de tipo "Here-String", 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 de tipo "Here-String" 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 las 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 las cadenas especificadas con 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.

Aquí: las cadenas se usan normalmente para asignar varias líneas a una variable. Por ejemplo, la siguiente cadena de tipo "Here-String" asigna una página de XML a la variable $page.

$page = [XML] @"
<command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10"
xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10"
xmlns:dev="http://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>
"@

Aquí: las cadenas también son un formato adecuado para la entrada al cmdlet ConvertFrom-StringData, que convierte las cadenas aquí-Strings en tablas hash. Para obtener más información, consulte ConvertFrom-StringData.

CONSULTE TAMBIÉN

about_Special_Characters

ConvertFrom-StringData