2015-01-14 6 views
1

Я пытаюсь прочитать вывод процесса в строку. По какой-то причине это похоже на то, что одна строка в середине вывода, кажется, выводится (т. Е. Отображается на экране и НЕ сохраняется в строке).в 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-Авторитетный ответ:" приходит после того, как "Адрес: ..."

Может кто-нибудь объяснить, почему он выведен, и не хранится как часть строки? Я, вероятно, пропустил что-то очевидное, но я ошеломлен.

Благодаря

+0

Эта линия, вероятно, будет STDERR, а не STDOUT. Попробуйте перенаправить стандартную ошибку, а также стандартный вывод. – Blorgbeard

+0

@Blorgbeard, вы должны сделать этот ответ, а не просто комментарий. –

ответ

5

Эта линия, вероятно, будет STDERR, а не STDOUT. Попробуйте перенаправить стандартную ошибку, а также стандартный вывод.

process.StartInfo.RedirectStandardError = true; 

 Смежные вопросы

  • Нет связанных вопросов^_^