2011-05-11 33 views

Respuesta

23

Las comillas dobles permiten la expansión de variables, mientras que las comillas simples no lo hacen:

PS C:\Users\Administrator> $mycolor="red" 
PS C:\Users\Administrator> write-output -inputobject 'My favorite color is $mycolor' 
My favorite color is $mycolor 

Fuente: http://www.techotopia.com/index.php/Windows_PowerShell_1.0_String_Quoting_and_Escape_Sequences

(sé la versión 1.0 pero el principio sigue siendo el mismo)

+0

Impresionante. ¡Gracias por eso! –

+0

La expansión de la variable a la que onteria_ se refiere también se llama "[interpolación] (http://www.powershellpro.com/powershell-tutorial-introduction/variables-arrays-hashes/)". También podría pensar en la interpolación como "una instancia especializada de concatenación", según lo expuesto por [Wikipedia] (http://en.wikipedia.org/wiki/Variable_ (computer_science) # Interpolation). – Stisfa

+0

Vea también: [Expansión variable en cadenas y cadenas aquí] (http://blogs.msdn.com/b/powershell/archive/2006/07/15/variable-expansion-in-strings-and-herestrings.aspx) por Jeffrey Snover, que entra en más detalles sobre el uso de variables con cadenas. –

2

Esto no está tratando ser una mejor respuesta. Solo otra forma de decirlo.

La expansión de la variable entre apóstrofes y comillas es la misma que en las shells UNIX (sh, ksh, bash). El uso de apóstrofes tomará la cadena de caracteres tal como está, sin procesar ningún escape.

PS C:\Users\lit> $x = "`t" 
PS C:\Users\lit> $x 

PS C:\Users\lit> Write-Output "now${x}is" 
now  is 
PS C:\Users\lit> $x = '`t' 
PS C:\Users\lit> $x 
`t 
PS C:\Users\lit> Write-Output "now${x}is" 
now`tis 
PS C:\Users\lit> $word = "easy" 
PS C:\Users\lit> "PowerShell is $word" 
PowerShell is easy 
PS C:\Users\lit> 'PowerShell is $word' 
PowerShell is $word 
Cuestiones relacionadas