Windowsのコマンドプロンプトでテキストの色を変更するにはどうすればよいですか
概要
ログを画面に出力するコマンドラインプログラムがあります。
エラー行を赤色で表示したい。テキストの色を赤に切り替えてから白に戻すために出力できる特殊な文字コードはありますか?
私は Ruby を使用していますが、これは他の言語でも同じだと思います。
何かのようなもの:
red = "\0123" # character code
white = "\0223"
print "#{red} ERROR: IT BROKE #{white}"
print "other stuff"
解決策
Windows では、次の 3 つの方法で簡単に実行できます。
require 'win32console'
puts "\e[31mHello, World!\e[0m"
red と呼ばれる小さなメソッドを使用して String を拡張できるようになりました。
require 'win32console'
class String
def red
"\e[31m#{self}\e[0m"
end
end
puts "Hello, World!".red
また、次のように String を拡張して、より多くの色を取得することもできます。
require 'win32console'
class String
{ :reset => 0,
:bold => 1,
:dark => 2,
:underline => 4,
:blink => 5,
:negative => 7,
:black => 30,
:red => 31,
:green => 32,
:yellow => 33,
:blue => 34,
:magenta => 35,
:cyan => 36,
:white => 37,
}.each do |key, value|
define_method key do
"\e[#{value}m" + self + "\e[0m"
end
end
end
puts "Hello, World!".red
または、gem をインストールできる場合:
gem install term-ansicolor
そしてあなたのプログラムでは:
require 'win32console'
require 'term/ansicolor'
class String
include Term::ANSIColor
end
puts "Hello, World!".red
puts "Hello, World!".blue
puts "Annoy me!".blink.yellow.bold
詳細と可能な使用法については、term/ansicolor のドキュメントを参照してください。