Windowsのコマンドプロンプトだって嘘をつく


コマンドプロンプト、カスタマイズしてますか?

デフォルトの「黒窓」

普段からCUI環境に慣れてる人なら、Windowsのコマンドプロンプトをよく使う方も多いのではないでしょうか。皆さんのイメージするコマンドプロンプトって、こんな画面ですよね?

気分を変えたいときは

たまには、背景色や文字色を変えてみたい!というときは、右クリックして、こんな風にRGB指定して設定しますよね?

でもコレ、面倒臭くない?

でも、いちいち背景色と文字色を変えるのにそれぞれにRGB値を入力するの、面倒臭くないですか?例えば、自分が変更したい色のカラーコードを知らなかったり16進数表記に慣れていていちいち10進数表記に変換するのが面倒臭かったり・・・。せっかくCUI環境使ってるんだから、コマンドで色を変えられないの・・・?

実はコマンドで色を指定できます!

colorコマンドの使い方

コマンドプロンプトで、

cmd.exe
C:\>color ?

と打ってみましょう。すると、colorコマンドの使い方の説明が表示されます。

colorの後に半角スペースを空けて、背景色・文字色をそれぞれ1桁の16進数で指定することができます。大文字・小文字は問いません。例えば、背景色を「灰色」、文字色を「輝く白」にしたい場合は、

cmd.exe
C:\>color 8f

と打てば、

こんなイメージになります。しかし「輝く白」って表現、何なんでしょうね(笑)

Windows10のデフォルト配色はこんな感じ

実際にWindows10のcolorコマンドに割り当てられている16色はこんな感じです。

派手に「背景色:赤、文字色:明るい黄色」でやりたい!って場合は、

cmd.exe
C:\>color 4e

こんな感じです。

既に右クリックでカスタマイズしていると・・・?

ところが、右クリックで既に設定を変更してしまっている場合は・・・?!

例えば、こんな配色にカスタマイズしてしまっていたとします。

とりあえずcolorコマンドの用法を聞いてみる

cmd.exe
C:\>color ?

すると、やはり先ほどと同じ説明が返ってきます。

0からFまで、全く同じ説明ですね。

じゃあ、本当にそうなんだな!?

この説明を信じて「背景色:緑(2)、文字色:白(7)」にしてみましょう。

cmd.exe
C:\>color 27

すると、なんと・・・!!

「背景色:黄色、文字色:青」になってしまったではないか!!!

コマンドプロンプトが嘘をついた!!

はい、コマンドプロンプト側は、ユーザーが右クリックでどのようにカラーパレットを設定したかなんて完全無視。色設定を変えたのに、説明では最初と同じ色が割り当てられてるなんて、おかしいですよね?

colorコマンドが返すのはあくまで16進数に割り当てられた色

たとえば、こんな配色に設定していたとすると、

colorコマンドで入力した16進数の位置に設定されている色を返してくるのです。

cmd.exe
C:\>color ?

ではいつも同じコトしか言わないのに、配色をカスタマイズしても、そこにどんな色を設定したかなんて、見ていないのです!やっぱり、コマンドプロンプトは、嘘つきですね!

今日はエイプリルフールです。

投稿日すなわち今日、2021年4月1日(木)は、エイプリルフールです。人間だけじゃなく、コンピュータだって嘘をつきたいでしょう。そこで、実際にコンピュータにエイプリルフール当日に嘘をつかせてみたのです。如何だったでしょうか。面白かった!という方は是非LGTMをお願いします!!