使用PowerShell将所有嵌套应用程序的输出写入特定的日志文件

时间:2019-04-14 08:35:19

标签: powershell batch-file

我有一个脚本p.ps1,该脚本运行一个b.bat。批处理文件运行应用程序MyApp.exe。我还有一个日志文件保存在本地变量$LogFile中。

是否可以通过一种方式配置PowerShell脚本,使包括MyApp.exe在内的所有嵌套应用程序都可以写入同一日志文件,而无需更改b.batMyApp.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 :(得分:0)

我想我找到了解决方案: 从powershell文件:     $ command =“&'b.bat''arg1''arg2'”     调用表达式$ command |添加内容$ LogFile

从myApp代码中,用C#编写: Trace.WriteLine(msg);

这样,C#程序将所有内容写入屏幕。 powershell脚本捕获了输出,并使用Add-Content命令将其添加到日志文件中。