我正在尝试创建由 PSCustomObject
元素组成的数组,但遇到一些问题。这是我的代码的简化示例:
$FineData = @()
foreach ($Session in $Sessions) {
$Job = Get-VBRTaskSession -Session $Session
$Result = [pscustomobject]@{
Id = $job.Id.Guid
}
$FineData += $Result
}
$FineData
返回的格式:
Id
{19ea68a7-f2c3-4429-bc46-a87b4a295105, 3ebf8568-10ce-4608-bbb2-c80d06874173, 2ec28852-3f5e-477d-8742-872863e41b6d}
我想要的格式:
Id : 19ea68a7-f2c3-4429-bc46-a87b4a295105
Id : 3ebf8568-10ce-4608-bbb2-c80d06874173
Id : 2ec28852-3f5e-477d-8742-872863e41b6d
提前致谢。
最佳答案
看起来您的 Get-VBRTaskSession
可能返回多个对象,因此需要一个内部循环:
$FineData = foreach ($Session in $Sessions) {
foreach($guid in (Get-VBRTaskSession -Session $Session).Id.Guid) {
[pscustomobject]@{
Id = $guid
}
}
}
$FineData
然后您可以将 $FineData
通过管道传输到 Format-List
如果您希望它在控制台中显示为列表:
$FineData | Format-List
顺便说一句,应避免添加到固定集合中,有关详细信息,请参阅此答案:Why should I avoid using the increase assignment operator (+=) to create a collection .
关于arrays - PowerShell、PSCustomObject、数组格式问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74903100/