如何設置兩個外部可執行文件以從第一個stdout從第二個stdout路由到stdin的c#應用程序運行?將一個進程對象的stdout重定向到另一個進程對象
我知道如何通過使用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);
而且$管[1]將在鏈中的最後一個程序的標準輸出。有沒有辦法在C#中完成這一點?
如果您正在執行大量此類代碼,則可能需要查看Windows PowerShell。 – TrueWill 2009-08-28 23:10:42
我實際上在Linux中這樣做,但感謝提示! – Matthew 2009-08-31 12:30:45
我從來不知道管道操作員,我只是爲了告訴你,謝謝你。這是一個了不起的運營商。 http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/redirection.mspx?mfr=true – jocull 2010-03-04 00:50:29