在c#中,无法抑制进程的每一行

NL3*_*294 1 c# nslookup redirectstandardoutput

我正在尝试将进程的输出读取为字符串.由于某种原因,它看起来像输出中间的一行似乎输出(即,它显示在屏幕上,而不是保存到字符串).

string strOutput = "";
Process process = new Process();

process.StartInfo.FileName = "nslookup";
process.StartInfo.Arguments = "-type=mx uic.edu";
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardOutput = true;
process.Start();

strOutput = process.StandardOutput.ReadToEnd();

process.WaitForExit();

Console.WriteLine("xxxxxxxxxxxxxxxxxxx");
Console.WriteLine(strOutput);
Console.WriteLine("yyyyyyyyyyyyyyyyyyy");
Run Code Online (Sandbox Code Playgroud)

我得到的输出看起来像这样:

Non-Authoritative answer:
xxxxxxxxxxxxxxxxxxxx
Server: aaa.myserver.com
Address: 111.222.111.222

uic.edu MX preference = 10, mail exchanger - ...
...
yyyyyyyyyyyyyyyyyyyy
Run Code Online (Sandbox Code Playgroud)

当我通过命令行运行命令时,"非权威答案:"在"地址:..."之后出现

有人可以解释为什么输出它,而不是作为字符串的一部分存储?我可能错过了一些明显的东西,但我很难过.

谢谢

Blo*_*ard 5

那条线可能是STDERR而不是STDOUT.尝试重定向标准错误以及标准输出.

process.StartInfo.RedirectStandardError = true;
Run Code Online (Sandbox Code Playgroud)