我有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
到控制台?
答案 0 :(得分:1)
这应该在后台运行该过程并打印到控制台:
Start-Process -NoNewWindow 'C:\pathTo\gui.exe'