Процесс.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();

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


вы, вероятно, искали StandardError свойства.


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

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

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

Примечание

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