gpt4 book ai didi

powershell - 可以并行执行 ForEach-Object 命令

转载 作者:行者123 更新时间:2023-12-04 02:19:24 27 4
gpt4 key购买 nike

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

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

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

$($_.'CSVColumnValue')

是否可以使用 ForEach-Object 并行执行命令,如果可以,推荐的实现方法是什么?

最佳答案

没有“ForEach-Object -Parallel”之类的东西,因为它是在管道中执行的。检查Erik Meijer and Jeffrey Snover at MSDN Channel 9 ;这些人正在深入了解 PowerShell 的管道。这是一个 2008 年的视频,时长一个多小时,但仍然......关于管道的工作原理非常出色。

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

比较:

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

与:

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

关于powershell - 可以并行执行 ForEach-Object 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35852147/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com