PowerShell可以调用命令行批处理文件。可以使用“tee”命令记录PowerShell脚本输出。但是tee命令不会在PowerShell1中为我记录PowerShell脚本内批处理文件的输出。
试试这个简化的例子:
生成批处理文件,调用 球拍 ,包含内容
@echo hello from bat
从PowerShell运行:
PS C:\> .\test.bat | tee out.txt
这是有效的-您将有一个输出文件,其中包含
hello from bat
现在生成一个名为 PS1 包装批处理文件的
write-output "hello from PS" .\test.bat
现在用一个T恤来跑这个:
.\test.ps1 | tee pout.txt
这不会记录批处理文件的输出-输出文件仅包含
hello from PS
但是我想
hello from PS hello from bat
但未捕获批输出。如何捕获此PowerShell脚本和附属批处理文件的输出?
编辑:
它似乎在PowerShell2中工作,但在PowerShell1中不工作。
不过,我找到了PowerShell1的工作。尝试将test.ps1更改为此
write-output "hello from PS" .\test.bat | write-output