在我的场景中,我有一个PowerShell脚本接收标准输入。我想要做的是使用任意命令行启动子进程,并将标准输入从powershell脚本重定向到子进程。换句话说,我只想将标准输入传递给子流程。
关于如何使用循环,我有一些想法,但有更优雅的方式吗?
答案 0 :(得分:0)
不是完整的答案,但在某些情况下您可能会遇到一些问题,因为PowerShell.exe在开始执行您的脚本之前会等待所有输入。我遇到了一个问题,一个调用PowerShell的进程没有关闭它的流,因此PowerShell永远等待。
解决方案是使用未记录的选项(powershell.exe -InputFormat None
),然后逐字节手动读取输入;所有一次读取超过1个字节的方法都容易被永久阻塞,至少就我所知。
您可以使用异步方法解决这个问题。