Процесс.Start () получить ошибки из окна командной строки
Я пытаюсь запустить команду promt process С args. Теперь я хочу получить информацию об ошибках, если они существуют.
someProcess = System.Diagnostics.Process.Start(cmd, someArgs);
С наилучшими пожеланиями, loviji
3 ответов
другие ответы правильные. Вот код, который вы можете использовать:
ProcessStartInfo startInfo = new ProcessStartInfo(cmd, args);
startInfo.UseShellExecute = false;
startInfo.RedirectStandardError = true;
Process someProcess = Process.Start(startInfo);
string errors = someProcess.StandardError.ReadToEnd();
обратите внимание, что если файл не найден, вы не получите ошибку при стандартной ошибке. Вместо этого вы получите исключение.
Process.StandardError
свойства:
получает поток, используемый для чтения вывода ошибок приложения.
Это должно делать то, что вы хотите.
Примечание
чтобы использовать StandardError, необходимо установить ProcessStartInfo.Значение свойства useshellexecute false, и вы должны установить ProcessStartInfo.RedirectStandardError в true. В противном случае чтение из потока StandardError выдает исключение.