您需要做的是捕获标准输出流:
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.UseShellExecute = false;
// instead of p.WaitForExit(), do
string q = "";
while ( ! p.HasExited ) {
q += p.StandardOutput.ReadToEnd();
}
你可能还需要做一些与StandardError
类似的事情.然后你可以用q
做你想做的事.
这有点挑剔,就像我在one of my questions年时发现的那样
正如Jon Skeet所指出的,像这样使用字符串连接是不明智的;你应该使用StringBuilder
:
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.UseShellExecute = false;
// instead of p.WaitForExit(), do
StringBuilder q = new StringBuilder();
while ( ! p.HasExited ) {
q.Append(p.StandardOutput.ReadToEnd());
}
string r = q.ToString();