私は、Perl印刷コマンドを使ってコンソールに印刷されたテキストを色付けしたいと思います。WindowsのPerlスクリプトから出力テキストを色付けするにはどうすればよいですか?
私の場合、スクリプトはWinXP-DOSコマンドラインでしか実行されませんが、独立したパッケージをダウンロードするよりWinXPに結びつけたいのですが、それがOSに依存しない場合は素晴らしいでしょう。
私は、Perl印刷コマンドを使ってコンソールに印刷されたテキストを色付けしたいと思います。WindowsのPerlスクリプトから出力テキストを色付けするにはどうすればよいですか?
私の場合、スクリプトはWinXP-DOSコマンドラインでしか実行されませんが、独立したパッケージをダウンロードするよりWinXPに結びつけたいのですが、それがOSに依存しない場合は素晴らしいでしょう。
ANSI escape codesをサポートする端末であれば、Term::ANSIColor packageをCPANで利用できます。 NTに基づいて、Windowsのバージョン で
コンソールウィンドウ(Windows NT 4.0の、Windowsの 2000、Windows XPでは、Windows Server 2003では、 Windows VistaおよびWindows Server 2008) 行いますウィキペディアのページから
ANSI Escape シーケンスをネイティブにサポートしていませんが、一部のサポートは が可能です。
これ以上のWindows固有の情報はわかりません。私はPOSIXの人間です。 :-)
Win32::Console - ここしかし、これらのコマンドは、画面全体にテキストの色を変更する例
use Win32::Console;
my $CONSOLE = Win32::Console->new(STD_OUTPUT_HANDLE);
my $attr = $CONSOLE->Attr(); # Get current console colors
$CONSOLE->Attr($FG_YELLOW | $BG_GREEN); # Yellow text on green
print "This is a test\n";
$CONSOLE->Attr($attr); # Set console colors back to original
system("color A"); #DOS command, change text color to lime
system("color 7"); #DOS command, change text color to white
です。タイプ "color?" DOSウィンドウで色のオプションを表示します
Windowsでstrawberry perlを使用していますが、Win32 :: Consoleパッケージがありませんでした。コンソールでこのパッケージタイプをインストールするには:
のperl -MCPAN -eのWin32 :: Consoleをインストール
シェル
終了
ここは結局私のために最高の仕事をするものです:
1)Win32 :: Console :: ANSIをインストールしました(Win32 :: Consoleと同じではありません)。
perl -MCPAN -e shell
cpan> install Win32::Console::ANSI
2)Term :: ANSIColorの前にこのモジュールが読み込まれていれば、標準のTerm :: ANSIColor APIを使うことができ、実際に動作します(Windows 7で試しました)。私はちょうど用語を使用して周りめちゃめちゃ
use Win32::Console::ANSI;
use Term::ANSIColor;
print color("blue"), "blue\n", color("reset");
print "normal\n";
も参照してくださいhttp://search.cpan.org/~jlmorel/Win32-Console-ANSI-1.04/lib/Win32/Console/ANSI.pm – Hasturkun
:: ANSICOLORが、エスケープシーケンスを印刷していただけで、色が正しく表示されませんでした。私はHasturkun(http://search.cpan.org/~jlmorel/Win32-Console-ANSI-1.04/)によって提案されたパッケージをダウンロードしてビルドし、すべてが動作するようになりました。ありがとう! –