如何将变量传递给Start-Job命令

时间:2019-03-17 12:17:13

标签: powershell

我有一个对象数组,其中一个作业保存在变量中。我遍历每个对象并尝试使用开始作业,但无法传递变量。

我的例子:

$command = "whoami"
Start-Job -Name TESTJOB -ScriptBlock {$command}

Id     Name            PSJobTypeName   State         HasMoreData     Location             Command
--     ----            -------------   -----         -----------     --------             -------
16495  TESTJOB         BackgroundJob   Running       True            localhost            $command

如您所见,命令显示为$command而不是whoami

这意味着我没有得到所需的输出。

我不必使用Start-Job,但我正在尝试使诸如“线程”之类的东西能够正常工作,因为阵列中的某些作业将比其他作业花费更长的时间。

您能建议最好的方法吗?

1 个答案:

答案 0 :(得分:1)

您需要在此处解决的2件事:使用using:前缀从调用范围中解析$command的值,然后使用&调用运算符实际调用{{1 }}作为命令:

$command