执行unix样式管道命令?

时间:2011-10-27 01:56:54

标签: c# windows process

有没有办法通过C#执行以下命令?

.\binary.exe < input > output

我正在尝试使用System.Diagnostics.Process,但我想知道C#中是否存在直接exec样式命令。有什么建议吗?

2 个答案:

答案 0 :(得分:1)

基本上你需要将标准输入和输出重定向到你的程序并将它们写入你想要的文件

ProcessStartInfo info = new ProcessStartInfo("binary.exe");
info.RedirectStandardInput = true;
info.RedirectStandardOutput = true;
Process p = Process.Start(info);

string Input;
// Read input file into Input here

StreamWriter w = new StreamWriter(p.StandardInput);
w.Write(Input);
w.Dispose();

StreamReader r = new StreamReader(p.StandardOutput);
string Output = r.ReadToEnd();
r.Dispose();

// Write Output to the output file

p.WaitForExit();

答案 1 :(得分:1)

不是直接的,但您可以从控制台流重定向输出(正如您可能已经想到的那样,考虑到您正在尝试使用Process类),如MSDN上所述:http://msdn.microsoft.com/en-us/library/system.diagnostics.process.standardoutput.aspx

此处还有一个示例:Redirect console output to textbox in separate program

将它包装到您自己的类中,它基本上将成为“exec”样式命令。