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

发布于 2024-09-11 01:19:28 字数 751 浏览 4 评论 0原文

使用 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

无颜色< /a>

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

Is there any way to stop PowerShell from removing console message colors when using tee-object?

When I run without tee-object I get the nice error and verbose powershell message colors like this:

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

with color

However, when I'm using tee-object (b/c I want logging to console & file), the message colors are not shown on the console (I know the file won't show it) like this:

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

no color

If powershell is just using tee-object to split the output to a file in addition to the console, why am I losing the console formatting?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

云淡风轻 2024-09-18 01:19:28

尝试这样做:

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

Try this instead:

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

This happens because this part is executed first:

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

Such that what tee-object sees is the output of a native EXE. And AFAICT, PowerShell doesn't output error records (or highlight) stderr output from a native EXE (unless you redirect the error stream e.g. 2>err.log.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文