2017-02-15 33 views
1

Я понимаю, как перенаправить StandardIO потоки от Process объектов в C# в целом. Тем не менее, я должен использовать ShellExecute для конкретной команды для работы.Перенаправление стандартного вывода с помощью оболочки Execute

Следовательно, я не могу перенаправить эти потоки, которые мне нужны для ведения журналов.

Я попытался перенаправить это так:

procStart.FileName = m1g; 
procStart.Arguments = ">> output.txt"; 

В этот момент я планирую просто читать текстовый файл обратно, но это не похоже на работу.

Можно ли сделать что-то подобное?

ответ

3

Команды труб реализованы в cmd.exe. Так что вам нужно запустить cmd /c и добавить свой путь к исполняемому файлу в качестве аргумента

Process.Start("cmd.exe", "/c " + yourexecutablecommandline + " >> output.txt"); 
+1

Спасибо, что сделал трюк. –

+0

Теперь будет интересно попытаться сделать это потокобезопасным ... –