Windowsのコマンドプロンプト/PowershellでANSIエスケープシーケンスを有効にする

はじめに

WindowsのコマンドプロンプトやPowershellを用いている場合、デフォルトではANSIエスケープシーケンスによる出力が正しく表示されません。Windows環境でANSIエスケープシーケンスを利用したい場合、例えばANSICON などの対応ターミナルをインストールする方法もありますが、ここではレジストリに変数を追記することで、デフォルトのコマンドプロンプトやPowershellでANSIエスケープシーケンスを有効にする方法を紹介します。

手順

大まかな手順は以下です。

  1. レジストリエディタを起動する
  2. コンピュータ¥HKEY_CURRENT_USER¥Console を選択
  3. 新規にDWORD(32ビット)の変数を作成する
  4. 変数名をVirtualTerminalLevel とし、値を1にする
  5. コマンドプロンプトかPowershell を起動する

レジストリエディタの起動

左下の検索窓にregedit と入力してレジストリエディタを起動します。 レジストリエディタの起動

変数の作成

コンピュータ¥HKEY_CURRENT_USER¥Console を選び、右クリックしてDWORD(32ビット)の変数を作成します。 変数の作成1

VirtualTerminalLevel を 1にする

新規に作成した変数名はVirtualTerminalLevel とします。名前を設定後、選択してダブルクリックし、値を1にします。16進数のままでよいです。

変数の作成2

変数の設定

コマンドプロンプト/Powershell の起動

レジストリエディタを閉じて、コマンドプロンプト/Powershell を起動します。

参考文献