如何解决相同的脚本,相同的控制台,为什么颜色在 Powershell 中有效,而在 cmd.exe 中无效?
我创建了一个测试脚本 test.bat,其中包含:
grep --version | grep --color=always grep
我已经通过带有 /c 选项的 cmd.exe 运行了它, 和带有 -File 选项的 pwsh.exe。
为什么通过 pwsh.exe 执行时显示颜色,而通过 cmd.exe 时,它显示原始转义序列而不转换为颜色?
脚本调用的是 grep,而不是内部命令,因此没有 shell 命令差异。 您可以看到在两次运行中都调用了相同版本的 grep。 您可以在同一个控制台窗口中看到这是按顺序直接发生的。 您可以看到当通过 Format-Hex 进行管道传输时,两个输出看起来字节相同。 使用 PowerShell 5 而不是 7 没有帮助。
这在我的另一台 Windows 10 机器上运行良好,我终生无法弄清楚原因。 也许我做了一个我不记得的配置更改?两台电脑的cmd.exe和pwsh.exe的版本完全一样,执行$PSVersionTable的结果也是如此。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。