将一个exe的输出重定向到另一个exe:C#
我创建了两个简单的.exe文件。其中一个在运行时获取filename参数,并将文件内容读取到控制台。另一个等待控制台的输入,然后读取它;现在它只需要打印到控制台,但最终我必须将读入的文本重定向到一个新的txt文件。我的问题是,如何将第一个exe的输出重定向到第二个exe的控制台,在那里可以读取它 提前感谢您提供的任何帮助!:) -克里斯来自 您可以通过以下方式逐行读取:将一个exe的输出重定向到另一个exe:C#,c#,redirect,C#,Redirect,我创建了两个简单的.exe文件。其中一个在运行时获取filename参数,并将文件内容读取到控制台。另一个等待控制台的输入,然后读取它;现在它只需要打印到控制台,但最终我必须将读入的文本重定向到一个新的txt文件。我的问题是,如何将第一个exe的输出重定向到第二个exe的控制台,在那里可以读取它 提前感谢您提供的任何帮助!:) -克里斯来自 您可以通过以下方式逐行读取: ///... string output; while( ( output = p.StandardOutput.ReadLi
///...
string output;
while( ( output = p.StandardOutput.ReadLine() ) != null )
{
Console.WriteLine(output);
}
p.WaitForExit();
您可能可以使用管道重定向操作符对命令行执行某些操作:
ConsoleApp1.exe | ConsoleApp2.exe
管道操作员将控制台输出从第一个应用重定向到第二个应用的标准输入。您可以找到更多信息(该链接适用于XP,但规则也适用于Windows Vista和Windows 7)。我希望这是实现这一点的唯一方法,因为如果您自行设计,使用Process处理2.NET程序集流重定向是有史以来最差的设计。您可以使用命名管道、套接字、WCF、,网络服务,甚至数据库(希望不是)。@Cody:最糟糕的设计?你有没有试着告诉nix用户?在他们的世界里,这是一种常见的设计模式。
ConsoleApp1.exe | ConsoleApp2.exe