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


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 MonoMonaco等等,但你不能让CMD改变这些字体。

我不知道这里的区别,但它没有意义。一些不能被尊重的设置不应该存在,更不用说造成的混乱:“属性”和“默认值”是相同的。

我想要的是将普通cmd中的字体更改为Monaco或Dejavu Sans Mono。如果不可能,请在旧版cmd中。

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


1
通常(例如在Windows 7下)“属性”适用于当前cmd窗口(以及启动它的快捷方式),“默认”适用于所有cmd窗口(但它们已启动)。我不知道这是否仍然适用于Windows 10“遗留”和“新”cmd窗口...
DavidPostill

@DavidPostill确实和改变你必须明确定义它们的默认值
Ramhound 2017年

@DavidPostill是的,在Windows 10中,属性仍然是当前窗口,默认是所有未来的属性。遗产不确定。
Xalorous 2017年

此外,technet.microsoft.com/en-us/library/mt427362.aspx这里是有关新控制台主机的所有信息。
Xalorous 2017年

感谢所有的答复!我想你是对的。我现在看到的是,在“属性”中我可以看到有限的字体和更改工作,但在默认情况下,我看到更多的字体,但它不适用于此cmd,也不适用于另一个新的cmd。有什么想法吗?我怀疑这与代码页有什么关系,因为:Yahei Consolas Hybrid是一种可以用等宽字体显示中文字符和英文字符的字体,所以它必须包含一些中文字体。我的代码页是GBK,系统检测到Monaco / Dejavu没有中文字体,因此它不打算在属性字体中显示它们(?)
WesternGun 2017年

Answers:


2

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

问题在于代码页。我将Windows 10的默认显示语言设置为简体中文,使用GBK代码页(936)。因此,在cmdWindows中,系统打算用中文显示所有信息。实际上,我们看到在我在问题中发布的第一张图片中,帮助信息的起始行以中文显示。

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

为什么它也不清楚属性字体列表呢?因为正如评论所说,“属性”适用于当前的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。我不知道为什么。但你可以改变字体。

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


0

现在在区域设置(区域/管理[选项卡名称],然后更改系统区域设置...)中,有一个复选框,显示“Beta:使用Unicode UTF-8进行全球语言支持”。检查它,它可能会工作。我目前在Windows 10 build 17134.165上。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.