Powershell - 从脚本开始作业以调用带参数的另一个脚本

问题描述 投票:0回答:1

我正在尝试从主脚本在后台运行脚本, 命令是:

Start-Job -Name "Job Name" -File "Child script path" `
  -ArgumentList Param1, ..., Param6.

有6个参数,第一个是数组,第二个是字符串,3,4和5是凭证,最后一个是字符串。 如果我将第二个脚本称为 (

& "script path"
),它会很好地工作。 如果我通过在选项
Start-ThreadJob
之后添加选项
-StreamingHost $Host
来使用
-Name
调用第二个脚本,我在控制台中得到了第二个脚本中的参数请求命令,因为它没有收到由脚本调用
Start-ThreadJob.

知道我做错了什么吗?

DraKKarD

我试过了:

Start-Job -Name "Job Name" -File "Child script path" -ArgumentList Param1, ..., Param6

=> 不起作用

Start-ThreadJob -Name "Job Name" -StreamingHost $Host -File "Child script path" -ArgumentList Param1, ..., Param6

=> 不起作用

& "Child script path" Param1 ... Param6

=> 作品

预期的结果是创建和归档一些日志文件以及一些将写入日志文件的操作。

powershell background start-job
1个回答
1
投票

问题似乎与使用 Start-ThreadJob 时将参数传递给子脚本有关。使用 Start-Job 时,使用 -ArgumentList 参数显式传递参数,但使用 Start-ThreadJob 时,使用 -StreamingHost 参数隐式传递参数。

$arguments = @(
    $Param1,
    $Param2,
    $Param3,
    $Param4,
    $Param5,
    $Param6
)

Start-ThreadJob -Name "Job Name" -File "Child script path" -ArgumentList $arguments

尝试上面的部分,这应该正确地将参数传递给子脚本。如果您仍然遇到问题,您需要向您的子脚本添加一些调试日志记录,以查看是否正确接收了参数。

© www.soinside.com 2019 - 2024. All rights reserved.