题
我正在使用的项目中的LAME命令行MP3编码器。我希望能够看到的是什么版本有人使用。如果我只是没有PARAMATERS执行LAME.exe我得到,例如:
C:\LAME>LAME.exe
LAME 32-bits version 3.98.2 (http://www.mp3dev.org/)
usage: blah blah
blah blah
C:\LAME>
,如果我尝试将输出重定向到使用文本文件>到文本文件中的文本文件为空。其中是从在c#使用System.Process运行时,它本文accessable?
解决方案
这也可能是使用标准错误。 CMD.EXE不允许你重定向标准错误,我曾经重定向它的唯一方法是使用DJGPP工具。
其他提示
它可以被输出到stderr代替标准输出。您可以重定向标准错误通过这样做的:
LAME.exe 2> textfile.txt
如果这表明您的信息,然后是LAME输出到标准错误流。如果你写在C#的包装,你可以重定向从的ProcessStartInfo 标准误差和输出流>
System.Diagnostics.Process proc = new System.Diagnostics.Process();
proc.EnableRaisingEvents = false;
proc.StartInfo.FileName = @"C:\LAME\LAME.exe";
proc.StartInfo.RedirectStandardError = true;
proc.StartInfo.UseShellExecute = false;
proc.Start();
string output = proc.StandardError.ReadToEnd();
proc.WaitForExit();
MessageBox.Show(output);
的工作。谢谢大家!
不隶属于 StackOverflow