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

  # 另一种写法

  [scriptblock]$sb =

  {

  Write-Host "Values are: $v1, $v2"

  }

  复制代码

  方法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

  复制代码

  (编辑:雷林鹏 来源:网络)

原文地址:https://www.cnblogs.com/pengpeng1208/p/9334293.html