2011-07-18 49 views
0

我收到以下錯誤,我不明白爲什麼或它要求什麼。Powershell:Format-Table:非法密鑰計數

我想在一個表中顯示的對象是:

function newURLObject() 
{ 
# param ([String]$Value, [Int]$Count = "1", [String]$IP) 
    param ([String]$Value, [Int]$Count = "1") 


    $obj = new-object PSObject 
    $obj | add-member -type NoteProperty -Name Value -Value $Value.substring(1) 
    $obj | add-member -type NoteProperty -Name Count -Value $Count 
# $obj | add-member -type NoteProperty -Name IP -Value $IP 

    return $obj 
} 

的基本流程如下。

#< Declare Objects> 
#< Code to create an array of those objects > 

$z = @{Expression={$_.Count};Label="Count";width=5}, @{Expression={$_.Value};Label="URL";count=35} 

$y = $listOfRequestedURLs | sort count -descending | select -first 30 | ft $z 


Format-Table : Illegal key count 
At C:\Temp\parse IIS logs.ps1:231 char:8 
+ $y | ft <<<< $z 
    + CategoryInfo   : InvalidArgument: (:) [Format-Table], NotSupportedException 
    + FullyQualifiedErrorId : DictionaryKeyIllegal,Microsoft.PowerShell.Commands.FormatTableCommand 

我知道這些值在數組中;但它不會正確顯示。如果我在沒有格式表的情況下顯示它,值字段只顯示爲空。

回答

5

你有一個非法格式鍵值名,將其刪除(或重命名爲寬度):

@ {表達= {$ _值};標籤= 「URL」。 count = 35}

+0

Err ..對不起,因爲密集,但我不明白你與粗體的區別。 – Robert

+0

有效的鍵名是:Expression,FormatString,Label/Name,Width和Alignment。顯然伯爵不是其中之一。 –

+0

深度也是一個有效的密鑰名稱。 –