Как анализировать вывод командной строки из c #?
Я хочу выполнить приложение (приложение командной строки) из C # … и я хочу, после выполнения этого приложения и предоставления ввода для него, я хочу проанализировать вывод, который приведет к нему. Поскольку, он будет выводить много вещей, и я хочу взять, просто то, что мне нужно от него …
Как мне это сделать ??
Как я могу получить результат в c #, а затем взять только то, что мне нужно от него?
- Разбор аргументов командной строки в сценариях R
- Escape аргументы командной строки в c #
- Доступ к командной строке bash args $ @ vs $ *
- Как разобрать аргументы командной строки в Java?
- Получение нескольких аргументов для одной опции с использованием getopts в Bash
Для выполнения командной строки в C # … Я подумываю использовать способ «Jeff MC», который он объяснил в этом streamе. How To: Выполнить командную строку на C #, получить результаты STD OUT
Большое спасибо
- Лучший способ проанализировать аргументы командной строки в C #?
- Как передать аргументы командной строки программе Node.js?
- Передача дополнительных переменных из командной строки для
- Распространять все аргументы в сценарии оболочки bash
- Передача параметров командной строки с помощью Visual Studio C #
- Использование аргументов командной строки в VBscript
- Передача аргумента unicode командной строки в код Java
- Передача аргументов командной строки в Visual Studio 2010?
Есть еще один способ получить все выходные данные как события, когда и когда они выводятся другим консольным приложением, cmd_DataReceived
получает сообщение, когда есть выход, и cmd_Error
возникает, когда возникает ошибка, возникающая в другом приложении.
Если вы хотите проанализировать вывод, возможно, обработка этих событий – лучший способ считывать выходные данные и обрабатывать ошибки в другом приложении по мере их возникновения.
using System; using System.Diagnostics; namespace InteractWithConsoleApp { class Program { static void Main(string[] args) { ProcessStartInfo cmdStartInfo = new ProcessStartInfo(); cmdStartInfo.FileName = @"C:\Windows\System32\cmd.exe"; cmdStartInfo.RedirectStandardOutput = true; cmdStartInfo.RedirectStandardError = true; cmdStartInfo.RedirectStandardInput = true; cmdStartInfo.UseShellExecute = false; cmdStartInfo.CreateNoWindow = true; Process cmdProcess = new Process(); cmdProcess.StartInfo = cmdStartInfo; cmdProcess.ErrorDataReceived += cmd_Error; cmdProcess.OutputDataReceived += cmd_DataReceived; cmdProcess.EnableRaisingEvents = true; cmdProcess.Start(); cmdProcess.BeginOutputReadLine(); cmdProcess.BeginErrorReadLine(); cmdProcess.StandardInput.WriteLine("ping www.bing.com"); //Execute ping bing.com cmdProcess.StandardInput.WriteLine("exit"); //Execute exit. cmdProcess.WaitForExit(); } static void cmd_DataReceived(object sender, DataReceivedEventArgs e) { Console.WriteLine("Output from other process"); Console.WriteLine(e.Data); } static void cmd_Error(object sender, DataReceivedEventArgs e) { Console.WriteLine("Error from other process"); Console.WriteLine(e.Data); } } }