我有一个powershell脚本p.ps1
,该脚本运行一个batch-file,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
代码配置的另一个日志文件。
答案 0 :(得分:0)
我想我找到了解决方案: 从powershell文件: $ command =“&'b.bat''arg1''arg2'” 调用表达式$ command |添加内容$ LogFile
从myApp代码中,用C#编写: Trace.WriteLine(msg);
这样,C#程序将所有内容写入屏幕。 powershell脚本捕获了输出,并使用Add-Content命令将其添加到日志文件中。