Подтвердить что ты не робот

Process.Start() получить ошибки из окна командной строки

Я пытаюсь запустить команду promt process с помощью args. Теперь я хочу получить информацию об ошибках, если они существуют.

someProcess = System.Diagnostics.Process.Start(cmd, someArgs);

С уважением, loviji

4b9b3361

Ответ 1

Другие ответы верны. Вот какой код вы можете использовать:

ProcessStartInfo startInfo = new ProcessStartInfo(cmd, args);
startInfo.UseShellExecute = false;
startInfo.RedirectStandardError = true;
Process someProcess = Process.Start(startInfo);
string errors = someProcess.StandardError.ReadToEnd();

Обратите внимание, что если файл не найден, вы не получите ошибку при стандартной ошибке. Вместо этого вы получите исключение.

Ответ 3

Process.StandardError Свойство:

Возвращает поток, используемый для чтения вывода ошибки приложения.

Это должно делать то, что вы хотите.

Примечание

Чтобы использовать StandardError, вы должны установить ProcessStartInfo.UseShellExecute значение false, и вы должны установить ProcessStartInfo.RedirectStandardError до true. В противном случае чтение из потока StandardError генерирует исключение.