2009-07-06 8 views

cevap

13

ANSI escape codes'u destekleyen herhangi bir terminal için CPAN'da bulunan Term::ANSIColor package kullanabilirsiniz.

NT (Windows NT 4.0, Windows 2000 , Windows XP, Windows Server 2003, 2008 Windows Vista ve Windows Server) dayalı Windows sürümleri yılında

Konsol pencereleri yapın: Vikipedi sayfasından

ANSI Escape sekanslarını doğal olarak desteklemez, ancak bazı destekleri mümkündür.

Artık Windows'a özgü bir bilgi daha bilmiyorum, ben bir POSIX görevlisiyim. :-)

+9

Ayrıca bkz http://search.cpan.org/~jlmorel/Win32-Console-ANSI-1.04/lib/Win32/Console/ANSI.pm – Hasturkun

+1

Sadece kullanarak etrafında haberci Terim :: ANSIColor ama Sadece kaçış sıralarını yazdırıyordu ... renkleri düzgün göstermiyordu. Hasturkun (http://search.cpan.org/~jlmorel/Win32-Console-ANSI-1.04/) tarafından önerilen paketi indirip kurdum ve her şey çalışmaya başladı. Teşekkürler! –

15

Win32::Console - burada

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 
1
system("color A"); #DOS command, change text color to lime 

system("color 7"); #DOS command, change text color to white 

Ancak bu komutlar tüm ekranda metin rengini değiştirmek bir örnek. "Renk" yazın DOS penceresinde renk seçeneklerini görmek için

Windows'ta çilek perl kullanıyorum ve Win32 :: Console paketim yok. konsolunda bu paket türünü yüklemek için:

perl -MCPAN -e Win32'nin :: Konsolu yüklemek

kabuk

çıkış

İşte
6

sonuçta benim için en iyi çalıştı budur:

1) Yüklenen Win32 :: Console :: ANSI (bunun Win32 :: Console ile aynı olmadığını not edin)

perl -MCPAN -e shell 
cpan> install Win32::Console::ANSI 

2) Bu modül, Term :: ANSIColor'dan önce yüklendiyse, standart Term :: ANSIColor API'sini kullanabilir ve aslında çalışır (Windows 7 ile denedim).

use Win32::Console::ANSI; 
use Term::ANSIColor; 

print color("blue"), "blue\n", color("reset"); 
print "normal\n"; 
İlgili konular