Powershell 如何将变量传递到启动作业命令
我有一个对象数组,其中一个作业保存在一个变量中。我循环遍历每个对象并尝试使用start job,但无法传递变量 我的例子是: $command = "whoami" Start-Job -Name TESTJOB -ScriptBlock {$command} Id Name PSJobTypeName State HasMoreData Location Command -- ---- ------------- ----- ----------- -------- ------- 16495 TESTJOB BackgroundJob Running True localhost $command $command=“whoami” 开始作业-名称TESTJOB-脚本块{$command} Id名称PSJobTypeName状态HasMoreData位置命令 -- ---- ------------- ----- ----------- -------- ------- 16495 TESTJOB BackgroundJob运行True localhost$命令 如您所见,该命令显示为Powershell 如何将变量传递到启动作业命令,powershell,Powershell,我有一个对象数组,其中一个作业保存在一个变量中。我循环遍历每个对象并尝试使用start job,但无法传递变量 我的例子是: $command = "whoami" Start-Job -Name TESTJOB -ScriptBlock {$command} Id Name PSJobTypeName State HasMoreData Location Command -- ----
$Command
,而不是whoami
这意味着我无法获得所需的输出
我不必使用Start Job
,但我正在尝试使用类似“线程”的方法,因为数组中的某些作业将比其他作业花费更长的时间
您能建议最好的方法吗?这里需要解决的两件事:使用
using:
前缀从调用范围解析$command
的值,然后使用&
调用操作符实际调用$command
作为命令:
Start-Job -ScriptBlock {& $using:command}
有关
$using:
作用域(包括PSv2替代方案)的更多信息,请参阅