使用非 ASCII 字符集更改 Windows 10 中非传统命令提示符的字体 - 属性与默认值?

Wes*_*Gun 4 windows fonts command-line windows-10

我正在摆弄 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
Run Code Online (Sandbox Code Playgroud)

让 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 中。

顺便说一句,如果有人能澄清“属性”和“默认值”之间的区别,那就太好了。

Wes*_*Gun 5

现在我找到了答案,谢谢大家的帮助。我不会在一周内接受我自己的答案,看看是否有人可以发布更好的答案。

问题出在代码页上。我将 Windows 10 的默认显示语言设置为简体中文,带有 GBK 代码页 (936)。所以,在cmdwindows中,系统打算以中文显示所有信息。实际上,我们看到我在问题中发布的第一张图片中,帮助信息的开头行是中文显示的。

要显示中文,您必须找到合适的字体来提供中文字符的提示信息。显然,Windows 事先检查了所有字体以查看其对当前代码页字符的支持。当看到设置的字体不支持中文时,就会放弃这个字体,回退到默认字体。此外,它将从默认面板的字体设置列表中删除此字体。 Yahei Consolas Hybrid支持英文和中文,因此可以在默认和属性设置的列表中显示。Monaco并且Dejavu,然而,从默认面板消失,但仍然在属性面板中。

为什么它也不清除“属性”字体列表?因为正如评论所说,“属性”适用于当前的cmd窗口/会话,而“默认”设置控制所有后续cmd会话,例如,更具全局性。它保证了如果用户在运行时更改了代码页,不必再为Properties 做字体列表检查,用户可以直接更改字体。这正是我的情况。我必须说,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"
Run Code Online (Sandbox Code Playgroud)

1252可以是其他值。>>nul是为了避免打印

Active code page: 1252
Run Code Online (Sandbox Code Playgroud)

每次启动cmd.

  1. 运行该文件以导入设置。
  2. 运行cmd。现在您可以在“属性”中轻松设置字体。(我注意到,如果您从桌面中的链接运行,则字体为Simsun,但如果您从任务栏中的锚点运行,则为Yahei Consolas Hybrid。我不知道为什么。但您可以更改字体。

但是,在 Default 中设置默认字体不适用于 的后续会话cmd。它仍然属于Simsun,所以我无法实现“打开 cmd 和Monaco字体”。我认为这是因为Windows 使用字体检查当前语言代码页,而不是使用字体的“自动运行”代码页。,所以更改默认语言可以工作,但这不是我想要的。我还在这个话题上。


归档时间:

查看次数:

6077 次

最近记录:

7 年,1 月 前