大家都知道cmd里的字体是很丑的,而且不像某nix那样可以随便改字体。这是极其不科学且不人道的。

本文就将带你寻找让你的windows控制台更♂诱♂人的办法

首先你要明白,字符终端下的程序是木有字体这个概念的,只有颜色和位置。

然后打开你的注册表编辑器,嘛我觉得你可以用一个叫Registry Workshop的程序来代替系统自带的。

首先更改英文字体

你可以在参考资料[1]或者这里找到可以直接导入注册表的文件
  • 转到: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont
  • 新建这些项(REG_SZ)
    “0”=”Lucida Console”
    “00”=”Consolas”
    “000”=”Courier New”
    以及更多……【是零不是O

好了现在打开你的命令提示符,右击左上角的图标,选择默认值,在选项中默认代码页436,然后在字体中你可以发现刚才添加的字体。

但是中文还是好丑

木有关系,大神已经找到了解决方案,使用一种字体链接的办法(这有点像Android中字体的Fallback机制,在一个DroidSans字体找不到所需字符时就会在DroidSansFallback中寻找)这里有可以直接导入的注册表项

  1. 链接英文字体(假设Consolas微软雅黑):在 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink 中新建(REG_MULTI_SZ)Consolas = MSYH.TTC  注意:如果你使用Win8以下系统,你应该链接到MSYH.ttf
  2. 在 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\RasterFonts 添加(REG_SZ)微软雅黑=msyh.ttc同上win8以下用ttf不知道这个在干嘛,大概是为了渲染地更漂亮?
  3. 然后重启explorer或者重启机器什么的
  4. 打开命令提示符,进入默认值,选择代码页436,选择字体为Consolas,更改舒适的字体大小;
  5. 然后你会发现此时的控制台木有办法显示中文,废话因为436就是ANSI只有英数符嘛~
  6. 所以你要做一件很操蛋的事情:把代码页改成936(GBK);说操蛋是因为这个时候进字体选项卡会抽风:Win10及以上的新版控制台,并不会出现如下抽风

console-fonts

所以不要手贱点它,抽完之后你必须重复4-6步步骤

最后效果是这样的

哦对了你可能还想知道上面那一坨字是肿么搞的

进入HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor项,设置(REG_SZ)AutoRun=”cd /d Z:/temp&&cls&&title SERN机密终端-已连接&&echo SERN机密终端已于%time%启动于%COMPUTERNAME%&&echo 已授权的用户:%USERNAME%&&prompt %USERNAME%@%COMPUTERNAME%:$p # ”

其中title设置窗口标题;prompt设置提示字符串,相当于bash的PS1;$p是当前目录

果然弄得像某nix一点比较苏服~

以上~

参考:

[1]windows命令行(Command Prompt / Console)字体设置  http://www.2maomao.com/blog/windows-console-font/

[2]Windows的cmd.exe使用consolas加中文雅黑字体的方法  http://www.newsmth.net/bbsrecon.php?id=9915