后台写入STDOUT / Console时PowerShell中的工作

时间:2016-10-14 08:30:58

标签: powershell

我有GUI.exe应用程序,有时会将消息打印回它启动的控制台。例如,在git-bash中我会像gui.exe &一样启动它。这会将它放入后台但允许它写回shell。在PowerShell中,我可以执行以下操作:

& `C:\pathTo\gui.exe` | Out-Default

这将回写到控制台,但会阻止shell。

我也可以做以下事情:

Start-Job {& `C:\pathTo\gui.exe` | Out-Default}

但在这种情况下,我必须调用Receive-Job(可能使用-Keep)来提取消息。

是否有办法让流程同时打印到Out-Default以及在后台运行。我也不确定为什么我必须强行管道Out-Default同时在cmd.exe和bash中都可以打印消息。 PSversion是5.0.10586.117

修改
根据@metix的建议:
Start-Process -NoNewWindow 'C:\pathTo\gui.exe 这确实将它放入后台但不打印回控制台。 如果我添加-RedirectStandardOutput C:\tmp\testout.txt,则会写入testout.txt。有没有办法RedirectStandardOutput到控制台?

1 个答案:

答案 0 :(得分:1)

这应该在后台运行该过程并打印到控制台:

Start-Process -NoNewWindow 'C:\pathTo\gui.exe'