windows对于console控制台搞的很混乱,特别是设置的时候,打开cmd.EXE顶部菜单,发现有默认值,有属性等等,很容易搞混淆。实际应该是:

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的设置。)

所以修改cmd.exe文件应该是修改【属性】

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

修改方法:

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

2)然后打开cmd.exe文件,选择【属性】菜单,开始设置字体,颜色等等等等。。。这种修改就可以保存了。

3)不是所有的等宽字体都会被显示出来,没显示出来的表示cmd不支持使用该字体。可以尝试使用fontface来手动添加(参考其他exe的注册表内容设置,做好备份)

4)ssh.exe或者powershell.exe的设置同此,有些如果没有codepage键值的,说明它默认的是英文页面代码,或者对语言代码无要求。