我需要在工作流内并行创建许多对象,并将所有对象添加到数组中。我的代码就是这样的
workflow sample {
$ans=@()
$arr=@(1,2,3)
foreach -parallel ($a in $arr){
$obj= New-Object System.Object
$obj | Add-Member -type NoteProperty -Name "Number" -Value $a
$workflow:ans += $obj
}
$ans
}
但是这个的输出是
PSComputerName PSSourceJobInstanceId
-------------- ---------------------
localhost 56295d88-4599-495a-ae64-00d129f7e21c
localhost 56295d88-4599-495a-ae64-00d129f7e21c
localhost 56295d88-4599-495a-ae64-00d129f7e21c
我想要一个包含三个对象的数组。如何在这种情况下实现这一目标
答案 0 :(得分:4)
尝试这种方式:
workflow sample {
$ans=@()
$arr=@(1,2,3)
foreach -parallel ($a in $arr){
$obj= New-Object -type PSObject -Property @{
Number = $a
}
$workflow:ans += $obj
}
$ans
}
sample | select -Property Number
由于对象序列化/反序列化, Add-member
在workflow
中的效果不佳。