2012-11-09 13 views
6

Jestem nowy w PowerShell i próbuję uzyskać długość tablicy HashTable (do użycia w pętli for), ale nie mogę uzyskać długości tablicy HashTable do wyprowadzania czegokolwiek.Uzyskiwanie długości skrótu HashTable w powłoce Power Shell

$user = @{} 
$user[0] = @{} 
$user[0]["name"] = "bswinnerton" 
$user[0]["car"] = "honda" 

$user[1] = @{} 
$user[1]["name"] = "jschmoe" 
$user[1]["car"] = "mazda" 

write-output $user.length #nothing outputs here 

for ($i = 0; $i -lt $user.length; $i++) 
{ 
    #write-output $user[0]["name"] 
} 

Odpowiedz

17

@{} deklaruje HashTable natomiast @() deklaruje tablicę

Można użyć

$user.count 

znaleźć length was HashTable.

Jeśli zrobić:

$user | get-member 

można zobaczyć wszystkie metody i właściwości obiektu.

$user.gettype() 

Zwróć typ posiadanego obiektu.

+0

+1 Za wskazanie członka get. Jakoś nigdy się tego nie nauczyłem i to znacznie ułatwi w przyszłości. – Logan

3

$user jest tabela hash, więc użytkownik powinien $user.count zamiast.

0

To nie jest tablica, ale tablica hashtable. Zamiast tego użyj: .count:

write-output $user.count 
Powiązane problemy