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

时间:2017-05-18 12:37:33

标签: windows cmd

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

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

我尝试从我的其他计算机上复制cmd.exe,版本为10.0.10586.0并且着色有效,但是,在进一步阅读和试验后,我不再确定问题所在。< / p>

参见比较ls --color=auto的输出 git\git-cmd.exegit\git-bash.exe,Windows'原始cmd.exe及更早cmd.exe

#2

根据ls --color=auto outputs in several consoles,对着色的支持并不在于命令窗口,而是在conhost.exe中,这提出了一个问题 - 为什么它在某些控制台中有效,在某些控制台中却没有?

  

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

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

旧的,旧的

来自新的新老

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

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

旧控制台 this site

新控制台 old console

new console
Console Virtual Terminal Sequences msdn

1 个答案:

答案 0 :(得分:2)

至于现在,我已经&#34;修复了&#34; 它将较新的cmd_10.0.15063.0替换为我从旧系统复制的旧版cmd_10.0.10586.0。如果您运行了Windows升级,则可能会在C:\Windows.old\Windows\System32\cmd.exe中找到较旧的cmd版本。 (该文件夹已隐藏)

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

的完全权限