大家都知道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