15

使用 tee-object 时,有什么方法可以阻止 PowerShell 删除控制台消息颜色?

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

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

有颜色

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

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

没有颜色

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

4

1 回答 1

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.

于 2010-07-21T23:10:08.050 回答