【发布时间】:2021-02-25 21:15:43
【问题描述】:
我想使用 start-job 来运行需要参数的 .ps1 脚本。这是脚本文件:
#Test-Job.ps1
Param (
[Parameter(Mandatory=$True)][String]$input
)
$output = "$input to output"
return $output
这是我的运行方式:
$input = "input"
Start-Job -FilePath 'C:\PowerShell\test_job.ps1' -ArgumentList $input -Name "TestJob"
Get-Job -name "TestJob" | Wait-Job | Receive-Job
Get-Job -name "TestJob" | Remove-Job
这样运行,它返回“到输出”,所以在作业运行的脚本中$input为null。
我见过与此类似的其他问题,但他们大多使用 -Scriptblock 代替 -FilePath。通过 Start-Job 向文件传递参数是否有不同的方法?
【问题讨论】:
-
$Input是保留的自动变量。请勿将其用作只读项目以外的任何内容。 [咧嘴]
标签: powershell parameter-passing automatic-variable