4

我需要在工作流中并行创建许多对象并将所有对象添加到数组中。我的代码是这样的

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   

我想要一个包含三个对象的数组。在这种情况下如何实现这一点

4

1 回答 1

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-memberworkflow可能由于对象序列化/反序列化而不能很好地工作。

于 2015-06-24T09:51:50.483 回答