10
votes

Comment puis-je colorier le texte de sortie du script Perl sous Windows?

Je voudrais que je voudrais colorier le texte imprimé sur la console à l'aide de la commande PERL Imprimer.

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é.


0 commentaires

5 Réponses :


13
votes

Pour tout terminal prenant en charge ANSI Escape codes Vous pouvez utiliser le Terme :: Ansicolor Package Disponible sur CPAN.

de la page Wikipedia:

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.

Je ne sais plus d'informations spécifiques à Windows que cela, je suis un gars Posix. : -)


2 commentaires

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!



15
votes

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


0 commentaires

1
votes
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

0 commentaires

7
votes

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> xxx Pré>

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";


0 commentaires

1
votes

Construction de l'exemple de MPHUIE, ce qui en fait plus de plate-forme inter-plate-forme: xxx

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> xxx


0 commentaires