【发布时间】:2010-11-23 21:17:57
【问题描述】:
如何设置两个外部可执行文件从 C# 应用程序运行,其中第一个的标准输出从第二个路由到标准输入?
我知道如何使用 Process 对象来运行外部程序,但我没有看到像“myprogram1 -some -options | myprogram2 -some -options”这样的方法。我还需要捕获第二个程序的标准输出(示例中为 myprogram2)。
在 PHP 中我会这样做:
$descriptorspec = array(
1 => array("pipe", "w"), // stdout
);
$this->command_process_resource = proc_open("myprogram1 -some -options | myprogram2 -some -options", $descriptorspec, $pipes);
$pipes[1] 将是链中最后一个程序的标准输出。有没有办法在 c# 中实现这一点?
【问题讨论】:
-
如果您正在编写大量此类代码,您可能需要查看 Windows PowerShell。
-
我实际上是在 Linux 中这样做的,但感谢您的提示!
-
我从来不知道管道操作员,我登录只是为了告诉你谢谢。这是一个了不起的运营商。 microsoft.com/resources/documentation/windows/xp/all/proddocs/…