#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
Комментариев нет:
Отправить комментарий