The*_*ith 4 powershell formatting dictionary
更新以包括列出对象的空白/空属性
抱歉标题,不知道如何标记这个问题。我想表达一个 Dictionary 对象列表,其中 Key 作为标题/属性,Value 作为标题/属性的值。
例如,采用以下 PoSH 代码
$obj1 = new-object object | select Data; $obj1.Data = @{"header1"="Value1";"header2"="Value2";}
$obj2 = new-object object | select Data; $obj2.Data = @{"header1"="ValueA";"header2"="ValueB";}
$obj3 = new-object object | select Data; $obj3.Data = @{"header1"="Value1";"header3"="ValueC";}
$tmp = @($obj1,$obj2,$obj3)
Run Code Online (Sandbox Code Playgroud)
$tmp
然后看起来像下面这样:
Data
----
{header2, header1}
{header2, header1}
{header3, header1}
Run Code Online (Sandbox Code Playgroud)
$tmp | select -Expand Data
得到以下有用信息
Name Value
---- -----
header2 Value2
header1 Value1
header2 ValueB
header1 ValueA
header3 ValueC
header1 Value1
Run Code Online (Sandbox Code Playgroud)
无论如何,我可以旋转数据并将名称转换为属性(或标题)并用值表示它们,即
header1 header2 header3
---- ----- -----
Value1 ValueB
ValueA Value2
Value1 ValueC
Run Code Online (Sandbox Code Playgroud)
注意:我已经能够通过编写一个函数来做到这一点,该函数获取字典列表中的每个对象,创建一个新对象并通过 Add-Member 添加属性,但是当您有数千个条目并且数千个字典键
由于 Powershell v2 new-object 有一个property
参数,可让您输入一个哈希表,其中键是属性名称,值是属性值。
$tmp | select -expand data | %{new-object psobject -property $_}
Run Code Online (Sandbox Code Playgroud)
给出:
header2 header1
------- -------
Value2 Value1
ValueB ValueA
Run Code Online (Sandbox Code Playgroud)