2011-03-01 33 views

回答

4

謝謝大家對你的答案。他們幫助我弄清楚如何使用計算的屬性來執行我想要的操作。由於表格中列之間的自動單個字符空間,因此Expression必須小於縮進量。

如果您使用的-AutoSize標誌:如果你不使用-AutoSize標誌

Write-Host "Not indented" 
Write-Host " Indented" 
$a = @{ Aa = 1; Bbb = 2; Cccc = 300} 
$a | Format-Table -Property @{Expression=" "},Name,Value -AutoSize -HideTableHeaders 

Write-Host "Not indented" 
Write-Host " Indented" 
$a = @{ Aa = 1; Bbb = 2; Cccc = 300} 
$a | Format-Table -Property @{Expression={}; Width=3},Name,Value -HideTableHeaders 

輸出看起來像:

Not indented 
    Indented 

    Bbb  2 
    Aa  1 
    Cccc 300 
+0

爲什麼表有右對齊? – 2012-10-03 09:48:52

+0

@SalvatoreDiFazio:你的意思是在數字的列?這是PowerShell打印數字的默認方式。這很有用,因爲所有的小數位都排在一起以便於比較。 – 2012-10-03 13:29:15

+0

在我的情況下,我有很多' - '字符,這些信息位於我的powershell控制檯 – 2012-10-03 13:45:11

0

如何$SomeValues | Format-Table -HideTableHeaders -Auto

+0

你的意思是-自動尺寸?這與問題無關,該選項只是改變列的寬度。 – 2011-03-01 16:27:45

+0

啊..我的不好。我誤解了這一點。您可以在這種情況下使用格式說明符,而不是格式 - 表 – ravikanth 2011-03-01 16:30:28

1
PS> $a= @{A=1;B=2;C=3} 
PS> $a.GetEnumerator()|%{ "{0,10}{1,5}" -f $_.key,$_.value} 
     A 1 
     B 2 
     C 3 
PS> 

+0

關閉,但我希望兩列都是左對齊的。我嘗試了你的例子,第一列變成了右對齊。 – 2011-03-01 16:30:07

+1

$ a.GetEnumerator()| %{「{0,5} {1,5}」-f $ _。key,$ _。value} – ravikanth 2011-03-01 16:38:19

+0

管道調用後的語法是什麼?我想閱讀它。 – 2011-03-01 16:43:52

0

其實,你可以使用英尺,-AutoSize

$a= @{A=1;B=2;C=3} 
$a.getenumerator() | ft blah,name,value -hidetableheaders -auto 

     A  1 
     B  2 
     C  3