5

我想要的是:

我有一个脚本,它将 CAB 文件复制到一百多个服务器,并在它们上使用它。这个脚本运行了一个多星期。当我了解 Foreach-Object -parallel 功能时,我认为这会大大加快脚本的速度。但是我遇到了一个问题。由于我不是很了解 PowerShell,而且我在任何地方都没有找到有关此问题的帖子,所以我想,我要试试运气并在这里问:

预期和实际结果

我想将一个变量传递给 foreach-object cmdlet 中已执行的脚本块,如下所示:

$test = "123"
1..3|foreach-object -parallel {param($test);echo "$_, $test"} -ArgumentList($test)

我的期望:

1, 123
2, 123
3, 123

我得到什么:

ForEach-Object:无法使用指定的命名参数解析参数集。发出的一个或多个参数不能一起使用或提供的参数数量不足。

我究竟做错了什么?

这可能是一个微不足道的问题。但是因为我什么地方都没有,也没有找到任何帖子/代码示例。我把它贴在这里。我很感谢你的回答。

4

1 回答 1

5

您可以通过使用using关键字来简化它:-)

$test = "123"
1..3 | foreach-object -parallel { echo "$_, $($using:test)" } 
于 2020-09-16T07:42:03.897 回答