繁体   English   中英

可以并行执行ForEach-Object命令

[英]Possible to execute ForEach-Object commands in Parallel

我一直在尝试对通过CSV导入并由ForEach-Object调用的数据(例如服务器名称列表)执行并行命令。 我发现foreach有一个并行方法,但似乎ForEach-Object没有。 当我点击多个服务器读取日志数据时,我担心性能良好,并且有以下选项:

1) PowerShell Workflow 
2) PowerShell Background Job 
3) Invoke-Command

当我尝试选项3时,它失败了,因为我试图通过-ArgumentList发送参数,但它似乎不喜欢我以CSV的形式从CSV推送的变量:

$($_.'CSVColumnValue')

是否可以使用ForEach-Object并行执行命令,如果是这样,建议的方法是什么?

没有'ForEach-Object -Parallel'这样的东西,因为它是在管道中执行的。 在MSDN第9频道检查Erik Meijer和Jeffrey Snover ; 那些人在PowerShell的管道上获得了很多细节。 它是2008年的视频,持续了一个多小时,但仍然......管道的工作方式非常出色。

'ForEach -Parallel'是一个构造而不是管道cmdlet。 它是Workflow模块的一部分,并在Windows PowerShell 3.0中引入。

相比:

$Items = 1..42
ForEach -Parallel ($Item in $Items) {
 $Item
}

附:

1..42 | ForEach-Object -Process { $_ }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM