为什么PowerShell工作无法启动?

时间:2017-04-19 00:47:40

标签: powershell jobs

此代码无效:

$scriptBlock = {
  Param($i)
  $i
}

for ($i=1; $i -le 2; $i++) {
  Start-Job -ArgumentList $i -ScriptBlock $scriptBlock | Out-Null
}
sleep 5
Get-Job
Write-Host "end"

输出:

Id     Name            PSJobTypeName   State         HasMoreData     Location             Command
--     ----            -------------   -----         -----------     --------             -------
2      Job2            BackgroundJob   Running       True            localhost            ...
4      Job4            BackgroundJob   Running       True            localhost            ...
end

正如您所看到的,当作业应该很快完成时,作业仍在运行。实际上,这个

(Get-Job -Id 2).ChildJobs

会给我

Id     Name            PSJobTypeName   State         HasMoreData     Location             Command
--     ----            -------------   -----         -----------     --------             -------
3      Job3                            NotStarted    True            localhost            ...

注意未启动。知道为什么它从未开始吗?

注意:这也会挂起PowershellISE。

但是,如果我在开头放入一个断点并逐步完成脚本,那么一切正常。

0 个答案:

没有答案