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