Powershell如何在Start-Job的Scriptblock里传参?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Powershell如何在Start-Job的Scriptblock里传参?相关的知识,希望对你有一定的参考价值。

如何在Start-Job的Scriptblock里传参?

方法1:

利用本地变量,从一个可扩展的字符串,使用[scriptblock]::create方法创建脚本块:

$v1 = "123"
$v2 = "asdf"
$sb = [scriptblock]::Create("Write-Host 'Values are: $v1, $v2'")
$job = Start-Job -ScriptBlock $sb



方法2:

在InitializationScript中设置变量

$Init_Script = {
$v1 = "123"
$v2 = "asdf"
}
$sb = {
    Write-Host "Values are: $v1, $v2"
}
$job = Start-Job -InitializationScript $Init_Script -ScriptBlock $sb



方法3:

使用-Argumentlist参数

$v1 = "123"
$v2 = "asdf"
$sb = {
    Write-Host "Values are: $($args[0]), $($args[1])"
}
$job = Start-Job  -ScriptBlock $sb -ArgumentList $v1,$v2


以上是关于Powershell如何在Start-Job的Scriptblock里传参?的主要内容,如果未能解决你的问题,请参考以下文章

从 Start-Job (Powershell) 更新 winforms GUI

PowerShell 并行执行任务

在后台运行 powershell 命令

Powershell构建步骤,火灾和忘记?

用于提高状态行性能的 Powershell 作业

powershell“无法使用指定的命名参数解析参数集”