Ранее был задан почти такой же вопрос. В ответе было дано хорошее объяснение кодовых страниц, но он не дал ответа на вопрос в моей голове: что контролирует кодовую страницу, используемую при запуске cmd.exe? В моей системе это как-то меняется. В ключе реестра HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Nls \ CodePage есть элемент OEMCP, для которого установлено значение 437. Похоже, это CP, используемый cmd.exe (как показано chcp) после новой перезагрузки, но что-то меняет его позже, и он становится 1252 в новых окнах cmd.exe. Если я изменю его с помощью chcp на 437, это повлияет только на текущий cmd.exe. Когда я выхожу и перезапускаю cmd.exe, chcp показывает в новом окне 1252. Что контролирует CP по умолчанию, используемый при запуске cmd.exe? Как изменить значение в реестре? Как мне предотвратить его изменение и / или вернуть его на 437 для новых командных окон?
Какую кодировку / кодовую страницу использует cmd.exe при запуске?
Ответы (2)
Кодовая страница по умолчанию в cmd.exe
в моей системе Windows - 437, которая является кодовой страницей OEM по умолчанию для большинства аппаратных средств ПК, продаваемых в Соединенных Штатах (США) и Западной Европе из того, что я читал. Вы можете изменить это значение по умолчанию, добавив строковую запись с именем AutoRun
под одним или обоими ключами:
HKEY_CURRENT_USER\Software\Microsoft\Command Processor
и
HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor
в реестре Windows, как описано в this Страница поддержки MS Windows Server 2003. В нем описывается, как вы можете добавить запись REG_SZ
string с именем AutoRun
под одним или обоими этими ключами со значением, содержащим команды, которые вы хотите запускать автоматически при запуске cmd.exe
.
Например, чтобы сделать кодовую страницу 1252 по умолчанию, создайте новое строковое значение с именем AutoRun
после перехода к одному из этих ключей в служебной программе regedit.exe
, а затем установите его значение для команды chcp 1252
.
Хотя в статье MS указано, что это применимо только к Windows Server 2003, этот метод также работал на системе Win XP, на которой я ее тестировал, поэтому, вероятно, также будет работать с Vista и Win 7.
Если Win + R и запуск cmd.exe /D
исправляет это, то проблема в cmd автозапуск значение ...
cmd.exe /D
.
- person Bavi_H; 01.09.2012
Win
или что-то еще).
- person martineau; 06.01.2013