PSExec: Перенаправление вывода консольного приложения C # в окно / Diagnostics.Process? - PullRequest
0 голосов
/ 01 февраля 2011

Итак, я написал консольное приложение на C #, которое плюет на консоль (в моем случае это немного XML).Теперь я вызываю это консольное приложение с другого компьютера, используя PsExec;вызов работает нормально и завершается с кодом ошибки 0 (что означает успех), однако я не могу получить / просмотреть выходные данные, записанные в стандартный вывод командной строки моим консольным приложением.

Мой вызов выглядит примерно так:

"C:\Program Files\PSTools\psexec.exe"
    <machineName>
    -u <user>
    -p <password>
    "C:\..\..\consoleapp.exe"
    -arg1 "value"

Я заметил, что когда я запускаю это, он открывает второе окно, отличное от окна psexec (которое, вероятно, является моим консольным приложением), которое открывается и закрывается очень быстро.Я попытался добавить флаг -i, перенаправления 2> & 1, >> C: output.txt и> C: \ output.txt, но ни один из них не выводил вывод моего консольного приложения в исходное окно консоли [сpsexec в нем], а также не выводить выходные данные моего консольного приложения в файл.

Однако это промежуточная цель, я пытаюсь перенаправить этот вывод в объект System.Diagnostics.Process, которому удалось перенаправить толькотолько вывод psexec в stderror (т. е. «PSexec подключается к ... выход с кодом 0»).Стандартный вывод пустой, в который я хотел бы добавить вывод моего консольного приложения.

Есть предложения?

1 Ответ

1 голос
/ 01 февраля 2011

Звучит так, будто вам нужно какое-то межпроцессное взаимодействие.Одним из способов достижения этого является создание именованных каналов.Взгляните на эту статью, возможно, она укажет вам направление, в котором вы находитесь.

http://www.switchonthecode.com/tutorials/interprocess-communication-using-named-pipes-in-csharp

...