Powershell'Start-Job`与'Start-Process'

Bla*_*rai 13 .net powershell

我对PowerShell Start-JobStart-ProcessPowerShell 之间的区别感到有些困惑.我知道这Start-Job将在后台运行,但我想知道事情是否与Start-Job使用不同,Start-Process以及是否存在使用一个而不是另一个的其他含义.什么时候应该使用另一个,哪个有优势?

Adi*_*bar 18

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

Start-Process启动以交互方式运行的流程.

  • 需要注意的重要事项:作业是您的会话本地的。**您不能在一个Powershell会话中执行“开始作业”,而在另一个Powershell会话中不能执行“接收作业”。 (2认同)