Цвета текста консоли не работают в 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
, оригинал cmd.exe
и старше cmd.exe
Согласно этот сайт, поддержка раскраски не лежит в командном окне, а в conhost.exe
, который вызывает вопрос - Почему он работает в некоторых консолях, а в некоторых нет?
Если вы запустите файл powershell.exe из cmd.exe, он наследует настройки conhost с момента присоединения к ранее созданной консоли, не выделяя новую; это также позволяет escape-последовательности в файле powershell.exe.
Учитывая эту цитату, я попробовал следующее, что только углубило мое замешательство.
Я запускаю команду ls --color=auto
в каждой версии cmd, затем пытаюсь запустить более старый cmd из более нового и наоборот и получил следующие результаты.
(красная подчеркивание cmd v15063
, зеленая подчеркивание cmd v10586
)
старый, новый от старого
новый, старый от нового
/EDIT Я сделал несколько экспериментов...
Интересным/запутанным является другой результат type
и cat
и сравниваемый результат ls --color=auto
с тем же содержимым type
d из файла.
Консольные виртуальные терминальные последовательности msdn
историческая документация ANSI.SYS