2017/02/21

PowerShellからCMD.exeやpowershell.exeのフォントを追加する

Cmd.exeやpowershell.exeなどで、Windowsのコンソール(ターミナル)を使う場合、既定では日本語が表示できるTrueTypeフォントは、MSゴシックしか選べない。
今回は、PowerShellを使ってWindowsのコンソールにフォントを追加し、選択できるようにする方法を紹介する。

フォントの準備

Windowのコンソールに追加するフォントを準備する。
これらは、いわゆる等幅フォントでなければならない。
RictyMyrica等、好みのフォントをインストールしておく。

現状設定の確認

続いて、現状の設定を確認する。
PowerShellを管理者モードで起動し、以下の通り実行する
PS C:\> $ttf = 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont'
PS C:\> Get-Item $ttf


    Hive: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console


Name                           Property
----                           --------
TrueTypeFont                   949 : *굴림체
                               0   : Lucida Console
                               950 : *細明體
                               932 : *MS ゴシック
                               936 : *新宋体
                               00  : Consolas


PS C:\>
「MS ゴシック」とある行の「932」は、いわゆるMicrosoftコードページ932 (CP932)のこと。
既定では、CP932に対して、MSゴシック一つのみが登録されており、唯一選択可能になっていることが解る。

CP932に対して、フォントを追加する場合、この部分を932.1, 932.2, 932.3,…の様に「コードページ.番号」の様な形で追加する必要がある。

なお、選択されたフォントは、フォント名の直前に「*」がついている。
上の例では、CP932に対しては、MSゴシックが選択されていることが解る(と言っても唯一の選択肢だが)。

フォントの追加

今回は、
  • Ricty Discord
  • Ricty
  • MyricaM M
  • Myrica M
を追加する。
フォント名の部分は、適宜読み替える。

以下の通り実行する。
PS C:\> New-ItemProperty $ttf -Name 932.1 -PropertyType string -Value 'Ricty Discord'


932.1        : Ricty Discord
PSPath       : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFon
               t
PSParentPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console
PSChildName  : TrueTypeFont
PSDrive      : HKLM
PSProvider   : Microsoft.PowerShell.Core\Registry



PS C:\> New-ItemProperty $ttf -Name 932.2 -PropertyType string -Value 'Ricty'


932.2        : Ricty
PSPath       : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFon
               t
PSParentPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console
PSChildName  : TrueTypeFont
PSDrive      : HKLM
PSProvider   : Microsoft.PowerShell.Core\Registry



PS C:\> New-ItemProperty $ttf -Name 932.3 -PropertyType string -Value 'MyricaM M'


932.3        : MyricaM M
PSPath       : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFon
               t
PSParentPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console
PSChildName  : TrueTypeFont
PSDrive      : HKLM
PSProvider   : Microsoft.PowerShell.Core\Registry



PS C:\> New-ItemProperty $ttf -Name 932.4 -PropertyType string -Value 'Myrica M'


932.4        : Myrica M
PSPath       : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFon
               t
PSParentPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console
PSChildName  : TrueTypeFont
PSDrive      : HKLM
PSProvider   : Microsoft.PowerShell.Core\Registry



PS C:\>

結果の確認

結果を確認する。
PS C:\> Get-Item $ttf


    Hive: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console


Name                           Property
----                           --------
TrueTypeFont                   949   : *굴림체
                               0     : Lucida Console
                               950   : *細明體
                               932   : *MS ゴシック
                               936   : *新宋体
                               00    : Consolas
                               932.1 : Ricty Discord
                               932.2 : Ricty
                               932.3 : MyricaM M
                               932.4 : Myrica M


PS C:\>
932.[1-4]にそれぞれフォントが追加されたのが判る。

この状態で、cmd.exeやpowershell.exeを起動し、プロパティ画面のフォントタブから、複数のフォントが選べるようになっていることを確認できる。

0 件のコメント: