PowerShell在使用tee-object时删除控制台消息颜色

时间:2010-07-21 22:40:12

标签: powershell redirect powershell-v2.0 tee

使用tee-object时,有没有办法阻止PowerShell删除控制台消息颜色?

当我在没有tee-object的情况下运行时,我得到了这样的错误和详细的powershell消息颜色:

powershell.exe -noprofile -file $project_root/test_main.ps1

with color http://i32.tinypic.com/250779w.jpg

然而,当我使用tee-object(b / c我想要登录到控制台和文件)时,控制台上没有显示消息颜色(我知道文件不会显示它),如下所示:

powershell.exe -noprofile -file $project_root/test_main.ps1 | tee-object -FilePath $log

no color http://i29.tinypic.com/bzpc2.jpg

如果powershell只是使用tee-object将输出拆分为除控制台之外的文件,为什么我会丢失控制台格式?

1 个答案:

答案 0 :(得分:5)

请改为尝试:

powershell.exe -noprofile -command { $path\test_main.ps1 | tee-object $log }

这是因为首先执行此部分:

powershell.exe -noprofile -file $project_root/test_main.ps1 

这样tee-object看到的是原生EXE的输出。而AFAICT,PowerShell不会从本机EXE输出错误记录(或突出显示)stderr输出(除非您重定向错误流,例如2>err.log