2012-08-29 59 views
0

新手在這裏的。我確信這個問題的答案在其他地方存在,但我沒有足夠的情景來發現它。PowerShell的 - 如何得到一個值從一個對象

我有一個命令:

PS C:\> Get-ClusterSharedVolume "Cluster Disk 1" | select -Expand SharedVolumeInfo | select -Expand Partition | select PercentFree 

它返回:

PercentFree 

----------- 
15.33617 

由於是採取這一結果作爲輸入另一個系統的一些限制,我想它說:

PercentFree:15.33617 

我該怎麼辦呢?更好的是,我怎樣才能將它彈入「$ freespace」之類的變量中?

獎金的問題:我如何讓它只說「15」?我見過{0:N0}在其他腳本中工作,但我newbiness阻止我瞭解我會如何將其應用到這種情況下:-)

謝謝!

+0

,我發現了一個很複雜的解決方案通過將我的命令的結果爲$ a,然後做「 $ b = [regex] :: match($ a,'\ d \ d')。Groups [0] .Value「,然後是」echo'PercentFree:$ b「。遠非一個優雅的解決方案,所以我仍然很高興聽到有人能夠進一步解釋! – DrewJenseric

回答

2

我沒有在時刻訪問羣集,但這對你的作品?

$pf = Get-ClusterSharedVolume "Cluster Disk 1" | Foreach-Object {$_.SharedVolumeInfo.Partition.PercentFree}  
$freespace = 'PercentFree:{0:N0}' -f $pf 

試試這個如果上述不工作(根據您的命令):

$pf = Get-ClusterSharedVolume "Cluster Disk 1" | select -Expand SharedVolumeInfo | select -Expand Partition | select PercentFree 
$freespace = 'PercentFree:{0:N0}' -f $pf.PercentFree 
+0

我喜歡這個解決方案,因爲我想我明白了!唉,$ freespace最終是「PercentFree:」而沒有實際價值。 – DrewJenseric

+0

打印$ pf時會得到什麼? –

+0

什麼都沒有。 echo $ pf吐出一個空白。 – DrewJenseric