3

Я возиться с новой командной строкой Windows 10. Я с кодовой страницей 936 (GBK).

Я говорю "новый", потому что я вижу в свойствах cmd что есть проверка для run legacy command prompt (need restart) , по умолчанию снята, так что я думаю, что я использую это "новее".

Вопрос в том, что поиск в Интернете дает мне только несколько способов добавить шрифт в реестр, чтобы устаревший cmd распознал его и отобразил в настройках "Свойства"/"Значения по умолчанию", например:

http://www.techrepublic.com/blog/windows-and-office/quick-tip-add-fonts-to-the-command-prompt/

Упоминается добавить запись шрифта в указанное место в:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont

чтобы Windows знала об этом шрифте. Я отмечаю, что шрифты, которые уже перечислены, есть те же, которые я вижу в устаревшем cmd. В нормальном cmd я вижу больше шрифтов.

Обратите внимание, что на рисунке я открыл старое приглашение cmd с некоторыми терминальными шрифтами, а в диалоговом окне «Свойства» я могу выбрать такие шрифты, как Consolas и Lucida Console, как в реестре.

И, если я переключаюсь на обычный cmd, есть два случая:

  1. Если я выберу редактировать "Свойства", я вижу меньше шрифтов, и изменение работает.
  2. Если я решу изменить "Значения по умолчанию", я увижу больше шрифтов, но изменение не вступит в силу.

В свойствах:

Я могу выбрать между Yahei Consolas Hybrid и другими шрифтами здесь, и cmd уважает мои настройки и немедленно меняет шрифт.

В значениях по умолчанию:

Здесь вы можете увидеть больше моноширинных шрифтов, таких как Dejavu Sans Mono , Monaco и т.д., Но вы не можете изменить cmd для этих шрифтов.

Я не знаю разницу здесь, но это просто не имеет смысла. Некоторые параметры, которые нельзя соблюдать, не должны существовать, не говоря уже о путанице: "Свойства" и "Значения по умолчанию" идентичны.

Что я хочу, так это изменить шрифт в обычном cmd на Monaco или Dejavu Sans Mono. Если не возможно, в наследство cmd.

И, кстати, если кто-то сможет уточнить разницу между "Свойствами" и "Значениями по умолчанию", это было бы здорово.

2 ответа2

2

Теперь я нахожу ответ, спасибо всем за помощь. Я не приму мой собственный ответ через неделю, чтобы посмотреть, сможет ли кто-нибудь опубликовать лучший ответ.

Проблема заключается в кодовой странице. Я установил язык отображения по умолчанию для Windows 10 на упрощенный китайский с кодовой страницей GBK (936). Таким образом, в окнах cmd система намеревается показать всю информацию на китайском языке. На самом деле, мы видим, что на первых изображениях, которые я разместил в вопросе, начальные строки справочной информации показаны на китайском языке.

Чтобы показать что-то на китайском языке, вы должны найти правильный шрифт, чтобы предоставить подсказку для китайских иероглифов. Судя по всему, Windows заранее проверяет все шрифты, чтобы увидеть поддержку символов текущей кодовой страницы. Когда он видит, что установленный шрифт не имеет поддержки на китайском языке, он оставляет этот шрифт и возвращается к шрифту по умолчанию. Кроме того, он избавится от этого шрифта из списка настроек шрифтов на панели «По умолчанию». Yahei Consolas Hybrid поддерживает английский и китайский языки , поэтому его можно отобразить в списке в настройках «По умолчанию» и «Свойства». Monaco и Dejavu исчезли с панели «По умолчанию», но остались на панели «Свойства».

Почему он тоже не очищает список шрифтов Properties? Потому что , как говорят , комментарии, "Свойства" относится к текущему cmd окна / сессии, а настройки " по умолчанию" контролирует все последующие сеансы cmd например, более глобальный характер . Это гарантирует, что если пользователь изменяет кодовую страницу во время выполнения, он не должен делать проверку списка шрифтов снова для свойств, и пользователь может изменить шрифт напрямую. Это именно то, что происходит в моем случае. Я должен сказать, что Windows проделала много фоновой работы здесь.

На следующем снимке экрана видно, что я изменил кодовую страницу с помощью chcp 1252 и изменение шрифта вступает в силу немедленно. Теперь это Monaco .

Итак, вопрос превращается в: «Как изменить кодовую страницу при запуске окна cmd ?«И я нашел очень полезный вопрос:

Измените кодовую страницу консоли Windows по умолчанию на UTF-8

И я упрощаю изменение:

  1. Создайте файл .reg , назовите его как хотите.
  2. Скопируйте эти строки в файл и сохраните.

Просто введите:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor]
"Autorun"="chcp 1252>>nul"

1252 могут быть другими значениями. >>nul , чтобы избежать печати

Active code page: 1252

каждый раз, когда вы запускаете cmd .

  1. Запустите файл для импорта настроек.
  2. Запустите cmd . Теперь вы можете легко установить свой шрифт в Свойствах. (Замечу, что если вы запускаете по ссылке на рабочем столе, шрифт будет Simsun , но если вы запускаете с привязки на панели задач, это Yahei Consolas Hybrid . Я не знаю почему. Но вы можете просто изменить шрифт.

Установить шрифт по умолчанию в Default не работает для последующих сеансов cmd . Это все еще выпадает на Simsun , поэтому я не могу добиться "Open cmd и с шрифтом Monaco ". Я думаю, это потому, что Windows проверяет текущую языковую кодовую страницу со шрифтами, а не "автозапуск" кодовой страницы со шрифтами. Таким образом, изменение языка по умолчанию может работать, но это не то, что я хочу. Я все еще с этой темой.

0

Теперь в настройках региона (Регион / Административный [имя вкладки], а затем Изменить системный языковой стандарт ...) есть флажок «Бета: использовать Unicode UTF-8 для поддержки языков во всем мире». Проверьте это, и это, вероятно, будет работать. Я в настоящее время на Windows 10 build 17134.165.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .