color / title - 色とタイトル
コマンドプロンプトを複数開いていると、どのウィンドウで何を実行しているのか分からなくなることがあります。
color コマンドで文字色と背景色を、title コマンドでウィンドウのタイトルを変えると、ウィンドウを見分けやすくなります。バッチファイルの実行結果を目立たせたいときにも便利です。
color と title は cmd.exe に組み込まれた内部コマンドです。PowerShell から使うときは cmd /c color 0A のように cmd /c を付けて実行します。コンソールは共有されるため色やタイトルの変更は PowerShell のウィンドウにも反映されますが、PowerShell 側の設定によっては色が上書きされることがあります。
color コマンドの使い方
基本構文
color [背景色の値][文字色の値]
色は、16 進数 1 桁の値を 2 つ並べて指定します。1 桁目が背景色、2 桁目が文字色です。
例えば、背景を黒(0)、文字を明るい緑(A)にするには、次のようにします。
color 0A
実行すると、画面全体の色がすぐに切り替わります。
色コードの一覧
指定できる値は次の 16 色です。
| 値 | 色 | 値 | 色 |
|---|---|---|---|
0 | 黒 | 8 | 灰色 |
1 | 青 | 9 | 明るい青 |
2 | 緑 | A | 明るい緑 |
3 | 水色 | B | 明るい水色 |
4 | 赤 | C | 明るい赤 |
5 | 紫 | D | 明るい紫 |
6 | 黄色 | E | 明るい黄色 |
7 | 白 | F | 輝く白 |
A から F は大文字・小文字のどちらでも指定できます。
組み合わせの例は次のとおりです。
| コマンド | 見た目 |
|---|---|
color 0A | 黒背景に明るい緑の文字 |
color 1F | 青背景に輝く白の文字 |
color 4F | 赤背景に輝く白の文字(警告向き) |
color F0 | 白背景に黒の文字 |
元の色に戻す
引数を付けずに実行すると、cmd.exe を起動した時点の色に戻ります。
color
color /? を実行すると、色コードの一覧とその説明がコンソール上に表示されます。
背景色と文字色を同じにするとエラーになる
背景色と文字色に同じ値を指定すると、文字が読めなくなってしまうため、色は変更されずエラーレベルが 1 になります。
color 00
echo %errorlevel%
エラーレベルについては
を参照してください。title コマンドの使い方
ウィンドウのタイトルを変更する
title 文字列
title コマンドを実行すると、ウィンドウのタイトルバーの表示が指定した文字列に変わります。
title ビルド用コマンドプロンプト
スペースを含む文字列でも、引用符で囲む必要はありません。引用符を付けた場合は、引用符も含めてタイトルに表示されます。
title "ビルド用"
バッチファイルが終了してもタイトルは元に戻らない
title で変更したタイトルは、バッチファイルが終了しても元に戻りません。ウィンドウを閉じるまで、または再度 title を実行するまで、そのまま残ります。
バッチファイルの実行中だけ別のタイトルを表示したい場合は、処理の最後で必要なタイトルを設定し直してください。
@echo off
title バックアップ実行中
rem ここにバックアップの処理を記述
rem 任意のタイトルに戻す
title コマンド プロンプト
start コマンドで新しいウィンドウにタイトルを付ける
start コマンドで新しいコマンドプロンプトを開くときは、最初の引用符で囲んだ引数がタイトルになります。
start "ログ監視" cmd /k "title ログ監視 && echo 監視を開始します"
start のタイトルについては、
既定のターミナルが Windows Terminal の場合(Windows 11 22H2 以降の標準設定)、コマンドプロンプトは Windows Terminal 上で動作します。この場合、title で変更されるのはタブの名前です。プロファイル設定で suppressApplicationTitle が有効になっていると、アプリケーションからのタイトル変更が無視されます。
実践例
エラー時に画面を赤くして気付きやすくする
処理が失敗したことを目立たせたい場合は、if と組み合わせて色を変えます。
@echo off
robocopy C:\data D:\backup /E
rem robocopy は 8 以上のとき失敗
if errorlevel 8 (
color 4F
echo バックアップに失敗しました。
) else (
color 2F
echo バックアップが完了しました。
)
pause
color
robocopy の戻り値については
if errorlevel については を参照してください。
最後に color を引数なしで実行して、色を元に戻しています。
管理者用のウィンドウを見分けやすくする
管理者として実行しているウィンドウは、通常のウィンドウと見た目が似ているため、誤操作のもとになります。
管理者として実行するバッチファイルの冒頭に次のように書いておくと、一目で区別できます。
@echo off
color 4F
title 管理者として実行中
管理者として実行する方法は、
を参照してください。色やタイトルが反映されないときは
- 色の指定が同じになっていないか:背景色と文字色が同じ値だと、変更されません。
- 値の桁数を確認する:
color Aのように 1 桁だけ指定した場合は、文字色だけが変わり、背景色は黒(0)になります。2 桁で指定すると背景色も指定できます。 - 一部の出力は色が変わらない:
colorコマンドは、すでに画面に表示されている文字も含めて、画面全体の色を切り替えます。ただし、プログラムが独自の色を指定して出力する場合、その部分は変わらないことがあります。 - タイトルが元に戻る:実行しているプログラムが、独自にタイトルを書き換えることがあります。
まとめ
color 背景色 文字色の形式で、16 進数 1 桁ずつを指定するcolorを引数なしで実行すると、起動時の色に戻る- 背景色と文字色が同じ値だと、色は変わらずエラーレベル
1になる title 文字列でウィンドウのタイトルを変更できるtitleで変更したタイトルは、バッチファイルが終了しても元に戻らない