【问题标题】:How can I pass a variable to Start-Job command如何将变量传递给 Start-Job 命令
【发布时间】:2019-03-17 12:17:13
【问题描述】:

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

我的例子:

$command = "whoami" Start-Job -Name TESTJOB -ScriptBlock {$command} Id 名称 PSJobTypeName 状态 HasMoreData 位置命令 -- ---- ------------- ----- ------------ -------- -------- 16495 TESTJOB BackgroundJob Running True localhost $command

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

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

我不必使用Start-Job,但我正在尝试使用“线程”之类的东西来工作,因为数组中的某些作业会比其他作业花费更长的时间。

你能建议最好的方法吗?

【问题讨论】:

    标签: powershell


    【解决方案1】:

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

    Start-Job -ScriptBlock {& $using:command}
    

    【讨论】:

    猜你喜欢
    • 2023-01-02
    • 1970-01-01
    • 1970-01-01
    • 2012-11-07
    • 1970-01-01
    • 1970-01-01
    • 2019-02-16
    • 2017-12-15
    • 2012-06-24
    相关资源
    最近更新 更多