arrays - PowerShell、PSCustomObject、数组格式问题

标签 arrays powershell pscustomobject veeam

我正在尝试创建由 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/

相关文章:

powershell - 记录某些东西的最佳PowerShell动词?

powershell - 如何将 System.Collections.ArrayList 添加到 PowerShell 自定义对象?

PHP - 从数组中获取元素的索引

c# - 提前检查数组元素是否为空

具有特定要求的 C++ 数组排序/改组

c# - 如果 Powershell 构建在 .Net 之上,那么编写脚本而不是 C# 代码的原因是什么?

c++ - 我的 C++ 合并排序程序有什么问题?

powershell - 如何通过 PowerShell 中的命令行将原始字符串传递给命令?

构建 PSCustomObject 时的 PowerShell 条件语句

arrays - 如果已存在,则防止将 pscustomobject 添加到数组