2013-08-29 2 views
0

Посмотрев на форумах, я написал этот фрагмент:командной строки запуска ошибка

public string ExecuteCmd() 
{ 
    System.Diagnostics.Process process = new System.Diagnostics.Process(); 
    System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo(); 
    startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; 
    startInfo.FileName = "cmd.exe"; 
    startInfo.Arguments = this.m_command; 
    process.StartInfo = startInfo; 
    process.Start(); 
    string output = process.StandardOutput.ReadToEnd(); 
    process.WaitForExit(); 

    return output; 
} 

m_command является членом класса, инициализирована в конструкторе. Для моих тестов это net user. Когда компилятор приходит к этому моменту, я получаю следующее исключение:

StandardOut has not been redirected or the process hasn't started yet. 

Где моя ошибка?

ответ

1

Вам нужно это:

//.... 
startInfo.Arguments = "/C " + this.m_command; 
process.StartInfo = startInfo; 
process.StartInfo.RedirectStandardOutput = true; 
process.Start(); 
//.... 
+0

Код работает, но вывод является неправильным, и всегда то же самое ... http://imgur.com/0jNO6zp – Victor

+0

У вас есть ссылка на мой комментарий с вывод – Victor

+0

@ Victor см. мое обновление. –