gpt4 book ai didi

powershell - 保留管道输出的颜色

转载 作者:行者123 更新时间:2023-12-04 20:34:06 24 4
gpt4 key购买 nike

我有一个非常简单的 powershell 脚本,它在每一行前面加上一个数字。

function number
{
$i = 0;
foreach($line in $input)
{
[string]$i + ":" + $line
++$i
}
}
我希望此功能保留输入的颜色。例如,如果我执行以下命令,颜色就会丢失:
git status -s | number
执行时
git status -s
给我一个漂亮的彩色输出。我可以在我的 powershell 函数中改变什么来实现这一点。
注意我已经尝试告诉 git 总是输出带有 this question 答案中的信息的颜色。所以我认为是我这边忽略了颜色。
这不是 the question this one was previously marked a duplicate of 的副本.
我见过那个问题,它实际上是关于如何防止 MSBuild 写入标准错误而不是标准输出,这会阻止颜色在这种情况下显示。这个问题和这个问题唯一相似的是标题。那里的另一个答案(使用 HTML 转换)在此处不适用,因为它要求将数据写入控制台而不是通过管道传输。

最佳答案

据我所知,您不能保留 git status -s 输出的颜色,或通过 StdIn 传输到 PowerShell 的任何其他命令输出。通过 StdIn 传输到 PowerShell 函数的文本的颜色信息是“丢失的”。

我能想到的唯一添加颜色的方法是使用多个 Write-Host "line section" -ForegroundColor COLOR -NoNewline 执行 RegEx 匹配或基于位置的着色。对于每个彩色部分。

控制台使用 System.IO.StreamReader 通过 StdIn 接受输入。试试这个命令 [Console]::In | Get-Member在 PowerShell/ISE 中。

关于powershell - 保留管道输出的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39245288/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com