PowerShell 1无法使用tee捕获批处理文件输出

时间:2009-09-18 15:14:08

标签: powershell powershell-v1.0 tee

PowerShell可以调用命令行批处理文件。可以使用“tee”命令记录PowerShell脚本输出。但是,在PowerShell 1中,tee命令不会为PowerShell脚本记录批处理文件的输出。

尝试这个缩减的例子:

制作名为 test.bat 的批处理文件,内容为

@echo hello from bat

从PowerShell运行它:

PS C:\> .\test.bat | tee out.txt

这样可行 - 您将拥有一个包含

的输出文件
hello from bat

现在制作一个名为 test.ps1 的PowerShell脚本,它包装批处理文件,包含

write-output "hello from PS"
.\test.bat

现在用发球台运行:

 .\test.ps1 | tee pout.txt

这不记录批处理文件的输出 - 输出文件仅包含

hello from PS

我期待

hello from PS
hello from bat

但是没有捕获批量输出。如何捕获此PowerShell脚本的输出和从属批处理文件?

1 个答案:

答案 0 :(得分:5)

修改

它似乎在Powershell 2中有效,但在Powershell 1中没有。

我找到了Powershell 1的解决方法。尝试将test.ps1更改为此

write-output "hello from PS"
.\test.bat | write-output