Страницы

Поиск по вопросам

воскресенье, 22 декабря 2019 г.

Возможно ли получить текст из cmd после Process.Start?

#c_sharp #cmd


Можно ли получить текст из cmd после ... 

Process _process = new Process ();

ProcessStartInfo startInfo = new ProcessStartInfo();


startInfo.FileName = "filename";
startInfo.Arguments = "/p /a /c" ;

_process.StartInfo = startInfo;
_process.Start();


Попробовал как вы посоветовали но выскакивает ошибка как вы думаете, как можно исправить?


Самое интересное, что вызов срабатывает ...

    


Ответы

Ответ 1



Если речь о получении вывода консольной команды, то попробуйте следующий подход: startInfo.FileName = "filename"; startInfo.Arguments = "/p /a /c"; startInfo.UseShellExecute = false; startInfo.RedirectStandardOutput = true; _process.StartInfo = startInfo; _process.EnableRaisingEvents = true; _process.OutputDataReceived += process_OutputDataReceived; _process.Exited += process_Exited; _process.Start(); Остается только написать обработчики process_OutputDataReceived и process_Exited. Если выхлоп у процесса небольшой и быстрый, то можно просто добавить startInfo.UseShellExecute = false; startInfo.RedirectStandardOutput = true; А потом прочитать весь вывод: string output = _process.StandardOutput.ReadToEnd();

Ответ 2



ChDir("D:\Некий Путь") Dim Info As New ProcessStartInfo With {.FileName = "cmd.exe", .Arguments = "/k ""smth.bat""", .RedirectStandardOutput = True, .RedirectStandardError = True, .UseShellExecute = False, .CreateNoWindow = True} Dim Prc As Process = Process.Start(Info) Do Dim Line As String = Await Prc.StandardOutput.ReadLineAsync() If Line Is Nothing Then Exit Do RtbStart1.Text += Line + vbCrLf Loop

Комментариев нет:

Отправить комментарий