PowerShell不会开始工作

时间:2016-12-13 13:56:31

标签: windows powershell powershell-v5.0 job-control

我有以下PowerShell 5程序:

$job = Start-Job -ScriptBlock {timeout.exe 10 /NOBREAK}
Wait-Job $job

当我运行它时,它立即终止,输出如下:

Id     Name            PSJobTypeName   State         HasMoreData     Location             Command
--     ----            -------------   -----         -----------     --------             -------
1      Job1            BackgroundJob   Completed     True            localhost            timeout.exe 10 /NOBREAK

timeout.exe未出现在任务管理器中。

为什么在终止前不等待10秒?当我在作业外调用timeout.exe 10 /NOBREAK时,它会等待10秒,就像在作业中调用Start-Sleep 10一样。

我不是在寻找一种不同的方法来解决同样的问题(睡眠),但专门针对为什么这个程序的行为方式的回答。

1 个答案:

答案 0 :(得分:1)

这里的问题是,对于timeout.exe捕获Ctrl + C,它会重定向输入,这在后台作业中不起作用。显然,如果您只想睡觉,那么Start-Sleep就可以了。

您可以通过执行以下操作查看作业的输出和错误消息:

Receive-Job 1