我想要什么:
我有一个脚本,它将CAB文件复制到100多个服务器上,并在它们上使用它。这个脚本运行了一个多星期。当我了解到Foreach对象并行特性时,我认为这将大大加快脚本的速度。但我遇到了一个问题。由于我不是很了解PowerShell,而且我在任何地方都没有找到关于这个问题的帖子,我想,我要碰碰运气,在这里问:
预期和实际效果
我想将一个变量传递给foreach对象cmdlet中执行的脚本块,如下所示:
$test = "123"
1..3|foreach-object -parallel {param($test);echo "$_, $test"} -ArgumentList($test)
我的期望:
1, 123
2, 123
3, 123
我得到的:
ForEach对象:无法使用指定的命名参数解析参数集。发出的一个或多个参数不能一起使用,或者提供的参数数量不足。
我做错了什么?
这可能是一个微不足道的问题。但由于我哪儿也没找到,也找不到任何帖子/代码示例。我把它贴在这里。我感谢你的回答。
您可以通过使用using
关键字来简化它:-(
$test = "123"
1..3 | foreach-object -parallel { echo "$_, $($using:test)" }