Je voudrais que je voudrais colorier le texte imprimé sur la console à l'aide de la commande PERL Imprimer. P>
Dans mon cas, le script ne sera exécuté que sous la ligne de commande WinXP-DOS, mais ce serait formidable si c'était indépendant du système d'exploitation, même si je préférerais lier à WinXP que de télécharger un package séparé. P>
5 Réponses :
Pour tout terminal prenant en charge ANSI Escape codes Vous pouvez utiliser le Terme :: Ansicolor Package Disponible sur CPAN. P>
de la page Wikipedia: P>
Windows de la console dans les versions Windows Basé sur NT (Windows NT 4.0, Windows 2000, Windows XP, Windows Server 2003, Windows Vista et Windows Server 2008) Ne prenez pas de manière native ANSI Escape séquences, bien que certains soutien soient possible. p> blockQuote>
Je ne sais plus d'informations spécifiques à Windows que cela, je suis un gars Posix. : -) p>
Voir aussi Search.cpan.org /~jlmorel/win32-Console-ansi-1.04/lib/win32/...
Je me suis bien fait avec juste à l'aide du terme :: ansicolor mais il n'imprimait que les séquences d'échappement ... ne montrant pas correctement les couleurs. J'ai téléchargé et construit le colis suggéré par Hasturkun ( Search.cpan.org/ ~ Jlmorel / Win32-Console-ANSI-1.04 ) et tout a commencé à travailler. Merci!
Win32 :: Console - Voici un exemple
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 However those commands change text color on the whole screen. Type "color ?" in DOS window to see color optionsI am using strawberry perl on Windows and I did not have Win32::Console package. To install this package type in console:perl -MCPAN -e shellinstall Win32::Consoleexit
Voici ce qui a fonctionné le mieux pour moi après tout:
1) installé Win32 :: console :: ANSI (Notez que ce n'est pas la même chose que Win32 :: console) p> 2) Si ce module est chargé avant terme :: ansicolor, vous pouvez utiliser le terme standard :: ansicolor API et cela fonctionne réellement (je l'ai essayé avec Windows 7). P> use Win32::Console::ANSI;
use Term::ANSIColor;
print color("blue"), "blue\n", color("reset");
print "normal\n";
Construction de l'exemple de MPHUIE, ce qui en fait plus de plate-forme inter-plate-forme: Remarque rapide: Les couleurs du terminal ne changent pas immédiatement lorsque les fonctions sont appelées à partir de chaînes intérieures, donc: < / p>