Prompt カスタマイズ: プロンプト表示を動的に変えて便利に使う小技集 - Windowsコマンド実用例
コマンドプロンプトのプロンプト表示(「C:\>
」などの表示)は prompt
コマンドで変更できます。本ページでは、すべてのコマンドプロンプトに適用する方法や、特定のバッチファイル・ショートカットでのみ適用する便利なカスタマイズ方法を紹介します。
使用コマンド
基本:プロンプトの変更
現在のフォルダーと >
を表示する標準のプロンプトは次のように変更できます:
prompt $p$g
$p
… カレントディレクトリのパス$g
…>
記号
例えば prompt [$t] $p$g
とすれば、時刻を含むプロンプトが表示されます。
すべてのプロンプトに適用する
prompt
コマンドの設定は通常、一時的にしか有効になりません。すべてのコマンドプロンプトで反映させるには、環境変数として永続的に設定します。
setx PROMPT "$p$g"
これにより、次回以降に起動するコマンドプロンプトでも指定したプロンプトが適用されます。
特定のバッチファイル・ショートカットのみ適用する
特定の用途でのみプロンプトを変えたい場合は、cmd /K
を組み合わせます。
cmd /K "prompt [$t][$p]$g"
ショートカットのリンク先をこのコマンドにすれば、起動したプロンプトだけが指定のカスタマイズになります。
また、バッチファイルの冒頭に prompt
コマンドを書けば、そのバッチを実行したプロンプトだけで有効になります。ただし、バッチファイルをダブルクリックで実行した場合は処理が終了するとすぐにウィンドウが閉じてしまうため、cmd /K
経由で起動するか、プロンプトウィンドウを先に開いてからバッチファイルを実行するなど工夫が必要です。
応用:色付きプロンプト
エスケープシーケンスを使うことで、プロンプトの一部に色を付けられます。例えば以下は緑色のパスを表示します(Windows 10 以降で動作)。
prompt $e[32m$p$e[0m$g
$e
はエスケープ文字(Bashなどにおける「\x1b」)で、$e[32m
は文字色を緑に、$e[0m
はリセットを意味します。(その他、$e[30m
は黒、$e[31m
は赤を表します。その他の色については「ANSIエスケープシーケンス」などで検索するとヒットします。)
便利なカスタマイズ例
prompt $t$g
… 時刻のみ表示prompt [$p]$g
… カレントディレクトリを角括弧付きで表示prompt [$n]$g
… ドライブ名のみ表示
その他利用可能な特殊記号については Prompt コマンドの解説ページをご覧ください。
注意点
- 一時的な設定はコマンドプロンプトを閉じるとリセットされます。
setx
は永続的に設定されるため、後で元に戻したい場合は再度setx PROMPT "$p$g"
を実行するか、「設定」画面経由で環境変数の設定を削除する必要があります。(設定が存在しない場合は既定の「$p$g」が使用されます。)- 特殊文字(
$
で始まるもの)はプロンプト用の置換記号です。複雑な構成の場合はエスケープや引用符で囲むと安全です。