Jes*_*ogt 10 console perl winapi
我想使用Perl打印命令对打印到控制台的文本进行颜色格式化.
在我的情况下,脚本将只在WinXP-DOS命令行下运行,但如果它是独立于操作系统将是很好的,虽然我宁愿将它绑定到WinXP而不是下载一个单独的包.
mph*_*uie 15
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
Run Code Online (Sandbox Code Playgroud)
cdl*_*ary 13
对于任何支持ANSI转义码的终端,您可以使用CPAN上提供的Term :: ANSIColor包.
从维基百科页面:
基于NT(Windows NT 4.0,Windows 2000,Windows XP,Windows Server 2003,Windows Vista和Windows Server 2008)的Windows版本中的控制台窗口本身不支持ANSI Escape序列,但可以提供一些支持.
不知道比Windows更具体的信息,我是一个POSIX人.:-)
毕竟,这对我来说最有效:
1)安装Win32 :: Console :: ANSI(注意这与Win32 :: Console不一样)
perl -MCPAN -e shell
cpan> install Win32::Console::ANSI
Run Code Online (Sandbox Code Playgroud)
2)如果该模块期限:: ANSIColor之前加载,你可以使用标准的期限:: ANSIColor API和它的实际工作(我与Windows 7试过).
use Win32::Console::ANSI;
use Term::ANSIColor;
print color("blue"), "blue\n", color("reset");
print "normal\n";
Run Code Online (Sandbox Code Playgroud)