18

我对PowerShellStart-JobStart-ProcessPowerShell 之间的区别有点困惑。我知道这Start-Job将在后台运行,但我想知道事情的运行方式是否与Start-Jobwith不同,Start-Process以及使用 one 而不是 other 是否还有其他含义。什么时候应该使用一个而不是另一个,两者是否有优势?

4

1 回答 1

23

Start-Job启动后台作业并创建一个作业对象,您可以使用 cmdlet Get-JobReceive-JobWait-JobStop-JobRemove-Job来监视、查询和与作业交互。在您使用Receive-Job查询作业对象之前,您不会看到任何交互式窗口或控制台输出。这就是“后台作业”的意思——它运行,但不与登录会话交互。但是,如果有任何输出,则由作业对象收集,您可以使用Receive-Job检索它。您通常可以通过检查HasMoreData来判断是否有数据要接收作业对象的属性,但要小心,这是 PowerShell 2 中的错误 - 还记得吗?即使在 Receive-Job 之后,“HasMoreData”也为真

Start-Process启动一个交互式运行的进程。

于 2013-07-30T21:04:28.183 回答