2009-07-06 7 views
8

मैं पर्ल प्रिंट कमांड का उपयोग कर कंसोल पर मुद्रित पाठ को रंगना चाहता हूं।मैं विंडोज पर पर्ल स्क्रिप्ट से रंग आउटपुट टेक्स्ट कैसे करूं?

मेरे मामले में स्क्रिप्ट केवल WinXP-DOS कमांड लाइन के तहत चलाया जाएगा, लेकिन यह बहुत अच्छा होगा अगर यह ओएस स्वतंत्र था, हालांकि मैं इसे एक अलग पैकेज डाउनलोड करने के बजाय WinXP से जोड़ दूंगा।

उत्तर

13

ANSI escape codes का समर्थन करने वाले किसी भी टर्मिनल के लिए आप सीपीएएन पर उपलब्ध Term::ANSIColor package का उपयोग कर सकते हैं।

विकिपीडिया पृष्ठ से:

विंडोज संस्करणों NT (Windows NT 4.0, विंडोज 2000, Windows XP, विंडोज सर्वर 2003, Windows Vista और Windows Server 2008) के आधार पर में कंसोल खिड़कियों करना एनएनएसआई एस्केप अनुक्रमों का मूल रूप से समर्थन नहीं करते हैं, हालांकि कुछ समर्थन संभव है।

उससे अधिक विंडोज-विशिष्ट जानकारी नहीं जानते, मैं एक पॉज़िक्स लड़का हूं। :-)

+9

भी देखें http://search.cpan.org/~jlmorel/Win32-Console-ANSI-1.04/lib/Win32/Console/ANSI.pm – Hasturkun

+1

मैं बस का उपयोग कर के साथ चारों ओर गड़बड़ टर्म :: ANSIColor लेकिन यह केवल बचने के दृश्यों को मुद्रित कर रहा था ... रंगों को सही तरीके से नहीं दिखा रहा था। मैंने हस्तुरकुन द्वारा सुझाए गए पैकेज को डाउनलोड और बनाया (http://search.cpan.org/~jlmorel/Win32-Console-ANSI-1.04/) और सब कुछ काम करना शुरू कर दिया। धन्यवाद! –

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

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

हालांकि उन आदेशों पूरे स्क्रीन पर पाठ का रंग बदल जाते हैं। टाइप करें "रंग?" रंग विकल्पों को देखने के लिए डॉस विंडो में

मैं विंडोज़ पर स्ट्रॉबेरी पर्ल का उपयोग कर रहा हूं और मेरे पास Win32 :: कंसोल पैकेज नहीं था। कंसोल में इस पैकेज प्रकार स्थापित करने के लिए:

पर्ल -MCPAN -e शैल

स्थापित Win32 :: कंसोल

बाहर निकलने

6

यहाँ सब के बाद मेरे लिए सबसे अच्छा काम किया है:

1) स्थापित Win32 :: कंसोल :: एएनएसआई (ध्यान दें कि यह Win32 :: कंसोल के समान नहीं है)

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

2) यदि यह मॉड्यूल टर्म :: एएनएसआईसीओलर से पहले लोड किया गया है, तो आप मानक टर्म :: एएनएसआईसीओलर एपीआई का उपयोग कर सकते हैं और यह वास्तव में काम करता है (मैंने इसे विंडोज 7 के साथ आजमाया)।

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

print color("blue"), "blue\n", color("reset"); 
print "normal\n"; 
संबंधित मुद्दे

 संबंधित मुद्दे