最近,我们开始编写需要很长时间才能完成的脚本。因此,我们深入研究了PowerShell工作流。在阅读了一些文档之后,我了解了一些基本知识。但是,我似乎找不到为foreach -parallel语句中的每个单独项创建一个foreach -parallel的方法。
需要解释的代码:
Workflow Test-Fruit {
foreach -parallel ($I in (0..1)) {
# Create a custom hashtable for this specific object
$Result = [Ordered]@{
Name = $I
Taste = 'Good'
Price = 'Cheap'
}
Parallel {
Sequence {
# Add a custom entry to the hashtable
$Result += @{'Color' = 'Green'}
}
Sequence {
# Add a custom entry to the hashtable
$Result += @{'Fruit' = 'Kiwi'}
}
}
# Generate a PSCustomObject to work with later on
[PSCustomObject]$Result
}
}
Test-Fruit它出错的地方在于从$Result块中向Sequence哈希表添加一个值。即使在尝试以下操作时,它仍然失败:
$WORKFLOW:Result += @{'Fruit' = 'Kiwi'}发布于 2016-06-17 13:29:14
好的,给你,试过并测试:
Workflow Test-Fruit {
foreach -parallel ($I in (0..1)) {
# Create a custom hashtable for this specific object
$WORKFLOW:Result = [Ordered]@{
Name = $I
Taste = 'Good'
Price = 'Cheap'
}
Parallel {
Sequence {
# Add a custom entry to the hashtable
$WORKFLOW:Result += @{'Color' = 'Green'}
}
Sequence {
# Add a custom entry to the hashtable
$WORKFLOW:Result += @{'Fruit' = 'Kiwi'}
}
}
# Generate a PSCustomObject to work with later on
[PSCustomObject]$WORKFLOW:Result
}
}
Test-Fruit您应该将其定义为$WORKFLOW:var,并在整个工作流中重复使用它来访问作用域。
发布于 2016-06-17 13:02:02
您可以将$Result分配给Parallel块的输出,然后添加其他属性:
$Result = Parallel {
Sequence {
# Add a custom entry to the hashtable
[Ordered]@{'Color' = 'Green'}
}
Sequence {
# Add a custom entry to the hashtable
[Ordered] @{'Fruit' = 'Kiwi'}
}
}
# Generate a PSCustomObject to work with later on
$Result += [Ordered]@{
Name = $I
Taste = 'Good'
Price = 'Cheap'
}
# Generate a PSCustomObject to work with later on
[PSCustomObject]$Resulthttps://stackoverflow.com/questions/37881875
复制相似问题