Windowsのバッチファイルで一部の文字だけ色を変更する方法です。次の図の様な結果を出力できます。
コード
以下のコードを実行すると前述の画像の様な出力になります。
1 2 3 |
@echo off echo [91mテスト[0m pause |
解説
「」の部分は「\x1b」というエスケープシーケンスという特殊な文字です。
これに上記の例で言うと「[91m」と続ける事で以降の文字は赤で出力するようになります。91の部分が赤を意味しています。
そして「テスト」に続く「[0m」の部分はその設定をリセットするという意味になります。0の部分がリセットを意味しています。
これが無いと以下の図の様にずっと赤色のままです。
1 2 3 |
@echo off echo [91mテスト pause |
「」はキーボードからの入力は普通できないので、サクラエディタなどで文字列置換したりで入力できますが本記事の文字をコピペでも多分大丈夫です。余談ですがバッチファイルの文字コードはSJISで保存してください。
設定できる色の一覧
OSによって多少色は変わりますので参考程度に捉えてください。以下の図はWindows11のサンプルです。ちなみに1行目は文字色と背景色の両方が黒なので見えてません。
文字色コード | 背景色コード | 色 |
---|---|---|
30 | 40 | 黒 |
31 | 41 | 赤 |
32 | 42 | 緑 |
33 | 43 | 黄 |
34 | 44 | 青 |
35 | 45 | マゼンダ |
36 | 46 | シアン |
37 | 47 | 白 |
90 | 100 | 明るい黒 |
91 | 101 | 明るい赤 |
92 | 102 | 明るい緑 |
93 | 103 | 明るい黄 |
94 | 104 | 明るい青 |
95 | 105 | 明るいマゼンダ |
96 | 106 | 明るいシアン |
97 | 107 | 明るい白 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
@echo off echo [30m黒[0m echo [31m赤[0m echo [32m緑[0m echo [33m黄[0m echo [34m青[0m echo [35mマゼンダ[0m echo [36mシアン[0m echo [37m白[0m echo [90m明るい黒[0m echo [91m明るい赤[0m echo [92m明るい緑[0m echo [93m明るい黄[0m echo [94m明るい青[0m echo [95m明るいマゼンダ[0m echo [96m明るいシアン[0m echo [97m明るい白[0m pause |
最後に
色を変えるだけではなく太字や下線を表示したりカーソル位置を変えたりできるようです。Wikipediaに詳しく載ってます。