2011-05-17 79 views
30

我已經寫了一個PS腳本,並用於診斷目的是使用寫主機回顯消息到屏幕。這是罰款,只要我有擴大普通變量一樣如何在Write-Host或雙引號中展開成員變量?

Write-Host "Hello World, $name"

問題開始當我嘗試回聲一些成員變量如下

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

這並不爲擴大預期。那我下面的解決方法是,使用臨時變量 如下

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

是否與這樣做出來的使用臨時變量的一個優雅的方式?

回答

42

,你需要一個子表達式:

​​
0

試試這個:如果你想使用雙引號字符串中的屬性訪問

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

這工作,但我期待着有着報價 – JeeZ 2011-05-17 17:37:32

+1

的擴大這種方法的問題在於,如果您更改爲寫入輸出並重定向到文件,則文本將被分解爲兩個輸出行。接受的答案避免了這個問題。 – 2012-07-12 17:33:59