我对PowerShell中Start-Job
和Start-Process
之间的区别感到有些困惑。我知道Start-Job
将在后台运行,但我想知道Start-Job
与Start-Process
的运行方式是否有所不同,以及是否有其他含义使用一个而不是另一个。什么时候应该使用一个而不是另一个?是否有优势?
答案 0 :(得分:17)
Start-Job 启动后台作业,并使用cmdlet Get-Job 创建用于监视,查询和与作业交互的作业对象,< strong>接收作业,等待作业,停止作业和删除作业。在使用 Receive-Job 查询作业对象之前,您将看不到任何交互式窗口或控制台输出。这是&#34;背景工作&#34;意味着 - 它运行,但不与登录会话交互。但是,如果有任何输出,则由作业对象收集,您可以使用接收作业检索它。您通常可以通过检查作业对象的 HasMoreData 属性来判断是否要接收数据,但要小心,PowerShell 2中的错误 - 请记住这一点吗? "HasMoreData" is true even after Receive-Job
启动流程启动以交互方式运行的流程。