2023
几个注册表位置

计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont
#右侧添加936,字体设置为*字体名称
#可以添加0936,字体设置为*第二种字体名称,可以添加另一个字体
#这个字体有要求,不是所有字体都满足,可以找更纱黑体

计算机\HKEY_CURRENT_USER\Console\%SystemRoot%_System32_cmd.exe
#右侧的codepage936为中文GBK,437为英文,65001为UTF-8,不同的代码页支持的字体不一样

cmd更换显示字体:左上角控制菜单选择属性,设置字体。

但是这个cmd.exe对字体又比较挑剔,不是说系统中安装的字体都能用作cmd.exe的显示字体,哪怕是等宽。而且windows中文本对cmd.exe又有一个页面代码设置(简体中文为936,英文默认为437,可以通过在cmd.exe中输入 chcp 代码值 来修改,只是这种修改是一次性的,重新打开cmd.exe又会恢复到默认的页面代码),而在windows中文环境下面,可供选择的字体很少,特别是英文字体,几乎没有什么选择。或者可以修改为65001,这是utf-8的代码页。


windows对于所有命令行处理的合并笼统称为console控制台(包括但不限于cmd.exe ssh.exe powershell.exe等等),菜单中的【默认值】是针对这个大范围的控制台的设置,同时windows又对下属命令行程序(包含的cmd.exe,ssh.exe等等)命令行程序又分别给与设置,这个下属命令行程序的设置就是菜单中的【属性】设置。也就是说:你修改【设置】只是影响这个下属命令行程序本身,比如修改cmd.exe文件的属性,只会影响到cmd.exe程序的样式,而不会影响到ssh.exe或者powershell.exe的样式。同样你修改console的【默认值】其实也不会影响到cmd.exe这样的下属命令行设置(下属命令行程序的【属性】设置与console的设置貌似无关,或者是其他一些未明确规定的命令行程序默认采用console的设置。)

1)要修改cmd.exe文件的默认代码页为英文,可以用chcp 437,这样显示的字体就会增加许多可使用的等宽字体。但是用chcp 437这样来修改是临时性的,关闭cmd后就失效了,进入到注册表: HKEY_CURRENT_USER\Console\%SystemRoot%_SYSTEM32_cmd.exe \Codepage,默认值十进制为936(简体中文),把它修改为十进制的437(英文)。