2011-05-17 7 views
30

He escrito una secuencia de comandos PS y para fines de diagnóstico estoy haciendo eco de mensajes a la pantalla usando Write-Host. Esto está bien, siempre y cuando tengo que ampliar variable normal como¿Cómo expandir variables miembro en Write-Host o comillas dobles?

Write-Host "Hello World, $name"

problema comienza cuando intento hacer eco de alguna variable miembro de la siguiente manera

Write-Host "Hello World, $Person.Name" 

Esto no se expande como esperado. El trabajo en torno a que estoy siguiendo es, para usar como variable TEMP continuación

$personName = $Person.Name 
Write-Host "Hello World, $personName" 

¿Hay una manera elegante de hacer esto con el uso de la variable temp?

Respuesta

42

Si desea utilizar el acceso a la propiedad dentro de cadenas entre comillas dobles, se necesita una subexpresión:

"Foo $($bar.Property)" 
0

Prueba esto:

$dir = ls 
Write-Host "Dir elements:" $dir.Length 
+0

Esto funciona, pero estoy buscando en expansión con en el presupuesto – JeeZ

+1

El El problema con este enfoque es que si cambias a Write-Output y redirige a un archivo, el texto se dividirá en dos líneas de salida. La respuesta aceptada evita este problema. –

Cuestiones relacionadas