我有一个模块读取进程的StandardError.一切都很好,但我想做一些不同的事情.我不知道如何像本机方式重定向stdin:
app1.exe -someargs | app2.exe -someargs
app2在其标准输入中读取app1的所有标准输出.
一旦你有了Process表示你要与之通信的进程的对象(或者因为你是使用静态方法从操作系统获得它Process.GetProcesses,或者是因为你自己创建了它),你可以将a附加StreamWriter到Process.StandardInput属性并使用它来写入stdin这个过程.不要忘记将ProcessStartInfo.RedirectStandardInput新创建的进程设置为true.
在一个相关的说明,您可以使用StreamReader在Process.StandardOutput读取输出(如读取StandardError).
查看 MSDN 参考文档以了解以下内容(均可在System.Diagnostics命名空间中找到):
ProcessStartInfo.RedirectStandardInput。
有一个示例展示了如何启动子进程并直接写入其标准输入。
对于您的特定示例,设置方法如下:
app1使用该类将app2作为子进程启动Process(请参阅上面的链接)。
app1通过写入与app2关联的对象.StandardInput的流来写入 app2 的标准输入。Process
app2只是从其标准输入读取行(例如 via Console.ReadLine())。
| 归档时间: |
|
| 查看次数: |
7737 次 |
| 最近记录: |