Windows 10控制台颜色不起作用(虚拟终端控制字符序列)

Qwe*_*rty 12 windows cmd

控制台的文本颜色在Windows 10中不起作用build 15063.296.
我挖了一下,发现自己输了.这是我发现的一切......

从几个讨论中,似乎在最新版本的Windows 10(#1,#2)中删除了对"虚拟终端序列""控制字符序列"的支持.有些人还建议降级一个git版本(这对我不起作用).

我试图cmd.exe从我的另一台机器上复制一个,版本10.0.10586.0和着色工作,但是,在进一步阅读和试验后,我不再确定问题所在.

见的比较输出ls --color=auto
git\git-cmd.exe,git\git-bash.exe,Windows的原始cmd.exe及以上cmd.exe

ls --color =几个控制台中的自动输出

根据这个网站,对着色的支持不在于命令窗口,而是在a中conhost.exe,这提出了一个问题 - 为什么它在某些控制台中有效,有些则不在?

如果从cmd.exe启动powershell.exe,它将继承conhost设置,因为它附加到以前创建的控制台,而不是分配新的控制台; 这也启用了powershell.exe中的转义序列.

鉴于这句话,我尝试了下面的内容,只会加深我的困惑.我ls --color=auto在每个cmd版本中运行一个命令,然后尝试从较新的cmd运行较旧的cmd,反之亦然,并得到以下结果.(红色下划线是cmd v15063,绿色下划线是cmd v10586)

旧的,新的

新的,旧的

/编辑我做了更多的实验......

有趣/令人困惑的是与文件中相同内容d 的不同结果typecat比较结果. ls --color=autotype

旧控制台 旧控制台

新的控制台 新的控制台

控制台虚拟终端序列msdn
ANSI.SYS历史文档

Qwe*_*rty 2

就目前而言,我已经通过用从旧系统复制的旧系统替换新系统来“修复”它。如果您运行了 Windows 升级,您可能会在. (该文件夹已隐藏)cmd_10.0.15063.0cmd_10.0.10586.0C:\Windows.old\Windows\System32\cmd.exe

要替换系统,cmd.exe您需要取得该文件的所有权Properties -> Security -> Advanced,在顶部Owner: TrustedInstaller (Change)设置为Administrators,然后授予管理员完全权限Permissions -> Change permissions -> Administrators -> Edit -> Full control