我正在制作一个PowerShell对象,如下所示:
$innerObj = New-Object PSObject
$innerObj | Add-Member -MemberType NoteProperty -Name "Arr" -Value @(1,2,3)
$outerObj = New-Object PSObject
$outerObj | Add-Member -MemberType NoteProperty -Name "Outer" -Value $innerObj
现在,当我使用Write-Output(Piping to Format-List)打印$ outerObj时,它显示了这个:
outer : @{arr=System.Object[]}
为什么显示System.Object []。当我执行$ outerObj.outer时,我可以看到数组的元素,但我想在没有这个System.Object []的情况下打印整个对象。我怎样才能做到这一点?这不应该是阵列吗?我错过了什么吗?
答案 0 :(得分:0)
您可以使用自定义格式执行此操作:
$innerFormat = @{Name="inner";Expression={$_.outer.Arr}}
$outerObj | select $innerFormat | fl
inner : {1, 2, 3}
or
$outerObj | fl $innerFormat
但我不知道这是正确的方式还是有更好的方法。