1. 程式人生 > >[命令列] 為windows cmd或powershell配置字型

[命令列] 為windows cmd或powershell配置字型

其實powershell可以看成是cmd的增強版,就僅以powershell為例說明。

快捷方式增加了可選的內容

首先在桌面上建立一個powershell的快捷方式,右鍵》屬性,可以發現裡面有很多選項卡。其中:

1> 選項:這裡面主要是配置內碼表(codepage),一般常用的有437(oem-美國)和936(ansi/oem 簡體中文 GBK)

2> 字型:這裡可以選擇字型型別和大小

3> 顏色:可以選擇前景背景色

4> 佈局:可以選擇視窗位置和視窗大小

增加可選字型

下載後安裝到系統。

如果修改powershell字型,你會發現能選擇的很少,雖然我們的系統裡有很多字型,下面說說如何增加可用字型。

開始》執行》regedit.exe

找到HKLM\Software\Microsoft\WindowsNT\CurrentVersion\Fonts,這裡面是你已經安裝的字型

找到HKLM\Software\Microsoft\WindowsNT\CurrentVersion\Console\TrueTypeFont

在裡面新建一個純0的字串,不要和原來衝突,如果原來裡面已經有了“0”和“00”,那麼就新建“000”,然後值設定為你想要的字型,例如“Anonymous Pro”。

選擇字型

這樣再次右鍵powershell快捷方式,然後選擇內碼表437,再去檢視字型,就可以看到“Anonymous Pro”了。

你還可以新增其它你喜歡的字型,但是需要注意,只能是在內碼表437中,在內碼表936中是看不到這些的。

以下是對字型的一些要求:

The fonts must meet the following criteria to be available in a command session window:
The font must be a fixed-pitch font.
The font cannot be an italic font.
The font cannot have a negative A or C space.
If it is a TrueType font, it must be FF_MODERN.
If it is not a TrueType font, it must be OEM_CHARSET.
Additional criteria for Asian installations:
If it is not a TrueType font, the face name must be "Terminal."
If it is an Asian TrueType font, it must also be an Asian character set.

我的嘗試

系統預設給內碼表936提供的是新宋體,這個字型一般,我想換一個,但是不知道如何修改登錄檔,因為新增“0000”這樣的方法似乎對內碼表936沒用。

所以我的想法是直接將登錄檔中936-》*新宋體替換掉,替換成我自己的字型。

從網上下載了一個Font Creator,可以開啟ttf檔案,並且顯示每一個字元。

1> 將微軟雅黑和Anonymous字型複製到桌面

2> 分別開啟這兩種字型

3> 用Anonymous裡面常用的字元(0-9A-Za-z,還有一些標點符號等)替換微軟雅黑裡面的字元。注意空格,null字元等。

4> 將更改後的微軟雅黑重新命名(這個命名是儲存在字型檔案內部的,和檔名不是一個概念),格式》命名,平臺就是UNICODE,語言注意需要分別設定英文和中文(我作業系統是中文版的,先前只改了英文的name,導致字型名稱實際沒有改),修改字型家族名,例如我改成“ProgramYaHei”(英文)和“\7F16\7A0B\96C5\9ED1”(中文),(後面這個是“程式設計雅黑”的UTF16編碼)。

5> 格式》設定》類別》比例,選擇“單空格(monospaced)”,這個如果不選擇,字型無法被powershell使用。

5> 儲存為msyh_anonymous.ttf,右鍵ttf檔案》安裝。

可以發現在word中可以選擇“程式設計雅黑”了,但是不知道為什麼,這個字型的英文和Anonymous有點區別,似乎失真了。

修改登錄檔,將“*新宋體”替換為“*程式設計雅黑”,然後配置快捷方式,OK。


參考文章