Windowsのコマンドプロンプトをカラフルにカスタマイズする

11/06/2022

Windows コマンドプロンプト

t f B! P L

 WindowsのコマンドプロンプトはMacやLinuxのターミナルと違って見づらい...
ということで、なるべくカラフルにカスタマイズしてみたいと思います。

追加ソフトを使わずにプロンプトをカラフルにカスタマイズ

promptコマンドについて

プロンプトとはコマンドプロンプト (以下「cmd」) やターミナルでユーザー名やカレントディレクトリ等が表示される部分を指すようです。
Windowsではpromptコマンドでプロンプトを変更することができます。promptコマンドの詳細についてはここをご覧ください。

例えば、cmdを開き、下記のコマンドを入力することで、普段の表示の前に現在時刻を追加することができます。

prompt [$t] $p$g

promptコマンドでは特殊文字$eによりANSIエスケープコードが使用できるので、promptの特殊文字では実現できないさまざまな制御を行うことができます。
私の場合、最終的に環境変数とエスケープコードを使用した以下のプロンプトに変更しました。

prompt $e[01;32m%username%@%computername%$e[0m:$e[01;34m$p$e[0m$g$s

コマンドプロンプトの例

$e[01;32mで色を緑に変更し、%username%でユーザー名を表示、@を挟み、%computername%でコンピュータ名を表示し、$e[0mで色を元に戻しています。

CMD起動時にコマンドを自動実行する

 ここまでで、プロンプトを変更することは出来たものの、このままではcmdを起動するたびに毎回コマンドを実行しなくてはいけません。
そこでbatchファイルにコマンドを記載し、それをレジストリに登録して毎回実行されるようにします。

Batchファイルをレジストリに登録

通常通りテキストファイルをcmdrcという名前で作成し(この名前は何でもいいです)、下記の内容を入力します。prompt=の後にはお好みのプロンプトを入力してください

@echo off
set prompt=$e[01;32m%username%@%computername%$e[0m:$e[01;34m$p$e[0m$g$s

テキストファイルの拡張子を.txtから.batに変更し、適当な位置に移動します。

レジストリエディタを開く

次に、キーボードのWindows+Rを押してファイル名を指定して実行を呼び出しregeditと入力してレジストリエディタを開きます。 

レジストリエディタのアドレスバー

レジストリエディタのアドレスバーにHKEY_LOCAL_MACHINE\Software\Microsoft\Command Processorと入力して移動します。

文字列値を新規作成

右クリック → 新規 →文字列値を選択、名前をAutoRunに設定します。

値のデータを入力

作成したAutoRunをダブルクリックし、値のデータに先ほど作成したcmdrc.batのフルパスを入力します。フルパスはcmdrc.batをShiftキーを押しながら右クリックして、パスのコピーを選択することでコピーできます。

cmdを再起動してプロンプトが変更されていれば成功です。

Clinkを使用してカスタマイズする

Clinkを使用すると、タブ補完などの様々な機能が使えるようになります。
GitHubからClinkの最新版 clink_{バージョン}_setup.exe をダウンロードし、指示に従ってインストールします。これだけでMacやLinuxのようにタブ補完ができるようになります。 

また、Clinkのインストールフォルダ (おそらく{ドライブ名}:\Program Files (x86)\clink\{バージョン}) にあるclink.batにpromptを記載してもCMD起動時にコマンドを実行することができます。