将变量传递给 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.
确保在脚本块中必须接受相同数量的参数
我必须在这里遗漏一些非常简单的东西。这是一个非常基本的脚本来说明我正在尝试的内容:
$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.
确保在脚本块中必须接受相同数量的参数