Подтвердить что ты не робот

Запустите команды оболочки с помощью С# и получите информацию в строку

Я хочу запустить команду оболочки из С# и использовать возвращаемую информацию внутри моей программы. Итак, я уже знаю, что для запуска чего-то из терминала мне нужно сделать что-то подобное:

string strCmdText;
strCmdText= "p4.exe jobs -e";
System.Diagnostics.Process.Start("CMD.exe",strCmdText);

так что теперь команда выполнена, и из этой команды возвращается некоторая информация... У меня вопрос: как использовать эту информацию в моей программе, возможно, что-то связанное с аргументами командной строки, но не уверен.

Мне действительно нужно использовать С#.

4b9b3361

Ответ 1

Вы можете перенаправить вывод с помощью ProcessStartInfo. Там примеры на MSDN и fooobar.com/info/33764/....

например.

Process proc = new Process {
    StartInfo = new ProcessStartInfo {
        FileName = "program.exe",
        Arguments = "command line arguments to your executable",
        UseShellExecute = false,
        RedirectStandardOutput = true,
        CreateNoWindow = true
    }
};

затем запустите процесс и прочитайте его:

proc.Start();
while (!proc.StandardOutput.EndOfStream) {
    string line = proc.StandardOutput.ReadLine();
    // do something with line
}

В зависимости от того, что вы пытаетесь выполнить, вы можете добиться гораздо большего. Я написал приложения, которые асинхронно передают данные в командную строку и читают ее. Такой пример не легко размещен на форуме.