2015-05-23 13 views
5

एक hashtable यह देखते हुए कि इस तरह के रूप विषम डेटा शामिल हैं:स्वरूप एक नेस्टेड hashtable

$items = @{ 
    a = @{a1 = "A1"; a2 = "A2"; a3 = "A3" } 
    b = 1234 
    c = @{c1 = "C1"; c2 = "C2"; c3 = "C3" } 
    d = [DateTime]::Now 
} 

जब मैं निम्नलिखित का उपयोग कर सामग्री प्रदर्शित करने का प्रयास:

$items | Format-Table -AutoSize 

उत्पादन होता है:

Name Value 
---- ----- 
c {c3, c1, c2} 
d 05/23/15 11:37:56 
b 1234 
a {a2, a3, a1} 

लेकिन मैं नेस्टेड हैशटेबल्स की सामग्री का विस्तार कैसे कर सकता हूं ताकि मैं कुंजी-मूल्य जोड़े देख सकूं जैसे:

Name Value 
---- ----- 
c {c3=C3, c1=C1, c2=C2} 
d 05/23/15 11:37:56 
b 1234 
a {a2=A2, a3=A3, a1=A1} 

नेस्टेड कुंजी-मूल्य जोड़े का सटीक प्रदर्शन प्रारूप बहुत महत्वपूर्ण नहीं है, मैं बस उन्हें देखना चाहता हूं।

उत्तर

4

आप नेस्टेड hashtables का विस्तार करने की जरूरत है अपने आप को:

$items | Format-Table Name, @{n='Value';e={ 
    if ($_.Value -is [Hashtable]) { 
    $ht = $_.Value 
    $a = $ht.keys | sort | % { '{0}={1}' -f $_, $ht[$_] } 
    '{{{0}}}' -f ($a -join ', ') 
    } else { 
    $_.Value 
    } 
}} 
0

यह बहुत नहीं है लेकिन ConvertTo-Xml -As String एक मनमाना गहराई तक नेस्टेड डेटा संरचनाओं प्रदर्शित कर सकते हैं:

$items | ConvertTo-Xml -As String 
संबंधित मुद्दे