Запись всех выходных данных из вложенных приложений в определенный файл журнала с помощью PowerShell - PullRequest
0 голосов
/ 14 апреля 2019

У меня есть сценарий , p.ps1, который запускает , b.bat. Пакетный файл запускает приложение MyApp.exe. У меня также есть файл журнала, сохраненный в локальной переменной $LogFile.

Есть ли способ настроить сценарий PowerShell таким образом, чтобы все вложенные приложения, включая MyApp.exe, записывали в один и тот же файл журнала без изменения b.bat и MyApp.exe?

Я уже пробовал:

Start-Process "cmd.exe" "/c b.bat" -Wait | Add-Content $LogFile

И

Start-Process "cmd.exe" "/c b.bat" -Wait | Out-File $LogFile -Append

Ожидаемые результаты:

Все выходы будут записаны в $LogFile, Мне все равно, будут ли выходы записываться в другой файл журнала, настроенный с помощью кода MyApp.exe.

Фактические результаты:

Все выходные данные b.bat были записаны в $LogFile, но выходные данные из MyApp.exe были записаны в другой файл журнала, настроенный с помощью кода MyApp.exe.

1 Ответ

0 голосов
/ 24 апреля 2019

Я думаю, что нашел решение: Из файла powershell: $ command = "& 'b.bat' 'arg1' 'arg2'" Invoke-Expression $ command | Add-Content $ LogFile

Из кода myApp, пишущего на C #: Trace.WriteLine (MSG);

Таким образом, программа c # записала все на экран. Сценарий powershell перехватил выходные данные и добавил их в файл журнала с помощью команды Add-Content.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...