将变量传递给 Start-Job

Passing Variables to Start-Job

我必须在这里遗漏一些非常简单的东西。这是一个非常基本的脚本来说明我正在尝试的内容:

$Computers = @('comp1', 'comp2')

$ScriptBlock = {
    New-Item "C:\Temp$C.txt" -Force
}

Foreach ($C in $Computers)
{
    Start-Job -ScriptBlock $ScriptBlock -ArgumentList $C
}

脚本运行,但没有传递 $C,所以我只在我的文件夹中得到一个“.txt”文件。我在这里忽略了什么简单的事情?

替换为:

$ScriptBlock = {
    New-Item "C:\Temp$C.txt" -Force
}

有了这个:

$ScriptBlock = 
{
    param($C)
    New-Item "C:\Temp$C.txt" -Force
}

注意:当您在 argumentlist 中传递参数时,请使用 param.

确保在脚本块中必须接受相同数量的参数