Я пытаюсь прочитать вывод процесса в строку. По какой-то причине это похоже на то, что одна строка в середине вывода, кажется, выводится (т. Е. Отображается на экране и НЕ сохраняется в строке).в C#, не может подавить каждую строку процесса
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");
я получаю вывод, который выглядит следующим образом:
Non-Authoritative answer:
xxxxxxxxxxxxxxxxxxxx
Server: aaa.myserver.com
Address: 111.222.111.222
uic.edu MX preference = 10, mail exchanger - ...
...
yyyyyyyyyyyyyyyyyyyy
При запуске команды через командную строку, "Non-Авторитетный ответ:" приходит после того, как "Адрес: ..."
Может кто-нибудь объяснить, почему он выведен, и не хранится как часть строки? Я, вероятно, пропустил что-то очевидное, но я ошеломлен.
Благодаря
Эта линия, вероятно, будет STDERR, а не STDOUT. Попробуйте перенаправить стандартную ошибку, а также стандартный вывод. – Blorgbeard
@Blorgbeard, вы должны сделать этот ответ, а не просто комментарий. –