2017-07-07 40 views
0

我已經稱爲陣列或PSCustomObject:$results = @()的powershell - 添加數組現有嵌套哈希表

我有稱爲嵌套哈希表:$allResults = @{}

$results |ft,顯示了這種在控制檯:

Brokering  Name    WriteCacheSize dFreeSpace (and more...) 
---------  ----    -------------- ----------    
N/A    server0001  0,004   22,83    
N/A    server0002  0,004   21,86   

$allresults |ft顯示了這個:

Name      Value             
----      ---- 
server0001      {SCOMStatus, PVSServer, RegistrationState, ServerLoad...} 
server0001      {SCOMStatus, PVSServer, RegistrationState, ServerLoad...}      

這個名字在兩個共同的$。應該有一種方法將$results中的值添加到$allresults,但我不知道該怎麼做。

我想在散列嵌套表中的一切。如何將$results中的值添加到$allresults。目標是擁有一個嵌套的表格和每個值。

+0

您的意思是'$ allResults'散列表包含的值是您的自定義對象嗎? –

+0

我沒有訪問實際的對象來測試它,但嘗試:['$ results,$ allresults |聯盟| ft'](https://stackoverflow.com/questions/44428189/not-all-properties-displayed/44429084#44429084) – iRon

+0

或者試試:[$ results,$ allresults |合併散列表| ft](https://stackoverflow.com/questions/8800375/merging-hashtables-in-powershell-how/32890418#32890418) – iRon

回答

0

如果您嘗試將數組的值添加到散列表,則可以遍歷數組並使用$allresults.Add(<key>,<value>)

0

感謝大家的迴應。 我終於做到了。我用自定義屬性創建了另一個對象,然後填滿了散列表。 這是代碼:

$myObjectProperties = @(
"Brokering" 
"PVSServer" 
"Name" 
"VDA" 
"WMI" 
"vDisk" 
"dFreeSpace" 
"WriteCacheSize" 
"Spooler" 
"CitrixPrint" 
"Uptime" 
"cFreeSpace" 
"RunspaceId" 
) 
foreach ($element in $results){ 
    foreach ($property in $myObjectProperties){ 
     $allresults.$($element.Name).$property = $element.$property 
    } 
}