通过选择字符串传输时,是否可以保留字符串的格式(特别是颜色)?
我正在使用select-string在git日志中查找具有特定标记的条目,这些条目已经使用一些漂亮的颜色进行了格式化。不幸的是,在这个过程中颜色会丢失,我得到的东西看起来像是非打印控制字符。即使在match-info对象的“line”属性中也会发生这种情况。
我已将git日志的输出传送到Get-Member,它似乎是一个vanilla System.String。
特详情: (可能不重要,但你永远不能告诉)
powershell v4
git 1.9.5
格式化的git log命令是:
git log --color --graph --pretty=format:'%C(cyan)%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit
我隐约意识到我可以用git log开关做类似的事情,我正在研究这个问题,但是对于这个问题,假设我仍然需要通过powershell命令管道输出来保持颜色。 / p>
修改
Mangled输出看起来像这样(略微消毒)。不幸的是,unicode字符无法通过电子邮件发送有问题的系统。
* [0123abc[m -[33m (tag: build-1.0.3730)[m Some Comment [32m(5 hours ago) [1;34m<Author Name>[m
* [0123xyz[m -[33m[m Some other comment [32m(6 hours ago) [1;34m<Author Name>[m
根据www.babelstone.co.uk/Unicode/whatisit.html,输出中有一个控制(转义)字符,代码点为U + 001B,紧接在前一个示例中的每个左方括号前面,但是这些字符被删除了通过电子邮件客户端。