Используя New Process () в C #, как я могу скопировать текст командной строки в текстовый файл? - PullRequest
1 голос
/ 04 января 2012

Я хочу запустить lmutil.exe с аргументами -a, -c и 3400 @ takd, а затем поместить все, что запрос командной строки генерирует в текстовый файл.То, что я имею ниже, не работает.

Если я пошагово выполняю процесс, я получаю сообщения об ошибках типа «вызвала исключение типа System.InvalidOperationException»

        Process p = new Process();
        p.StartInfo.FileName = @"C:\FlexLM\lmutil.exe";
        p.StartInfo.Arguments = "lmstat -a -c 3400@tkad>Report.txt";
        p.Start();
        p.WaitForExit();

Все, что я хочу, - это чтобы вывод командной строки был записан в отчет.txt

Ответы [ 2 ]

2 голосов
/ 04 января 2012

Чтобы получить вывод Process, вы можете использовать документально подтвержденное свойство StandardOutput здесь .

Затем вы можете записать его в файл:

Process p = new Process();
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.UseShellExecute = false;
p.StartInfo.FileName = @"C:\FlexLM\lmutil.exe";
p.StartInfo.Arguments = "lmstat -a -c 3400@tkad";
p.Start();
System.IO.File.WriteAllText("Report.txt", p.StandardOutput.ReadToEnd());
p.WaitForExit();
p.Close();
1 голос
/ 04 января 2012

Вы не можете использовать > для перенаправления через Process, вы должны использовать StandardOutput. Также обратите внимание, что для работы StartInfo.RedirectStandardOutput должно быть установлено значение true.

...