Comment puis-je changer la couleur du texte dans l'invite de commande windows
J'ai un programme en ligne de commande, où les sorties de journalisation à l'écran.
Je veux erreur de lignes à afficher en rouge. S'il y a des codes de caractère spécial, je peux de sortie pour changer la couleur du texte pour le rouge, puis le remettre à blanc?
Je suis l'aide de ruby, mais j'imagine que ce serait la même dans une autre langue.
Quelque chose comme:
red = "23" # character code
white = "23"
print "#{red} ERROR: IT BROKE #{white}"
print "other stuff"
OriginalL'auteur Orion Edwards | 2008-09-16
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin pour accéder à l' [Console Win32 API](http://msdn.microsoft.com/en-us/library/ms682073(SV.85%29.aspx). Malheureusement, je ne sais pas comment vous pouvez le faire à partir de Ruby. En Perl, j'utiliserais Win32::Console module. La console Windows ne répond pas à la norme ANSI codes d'échappement.
Selon la article sur la colorisation de Ruby sortie que artur02 mentionné, vous devez installer & charge le win32console gem.
OriginalL'auteur cjm
Sur windows, vous pouvez le faire facilement en trois façons:
Maintenant, vous pouvez étendre la Chaîne avec une petite méthode appelée
red
Aussi, vous pouvez étendre la Chaîne comme celle-ci pour obtenir plus de couleurs:
Ou, si vous pouvez installer des gems:
Et dans votre programme:
Veuillez consulter la documentation pour le terme/ansicolor pour plus d'informations et utilisation possible.
require 'win32console
lors de l'utilisation, comme "coloriser" seulement contrôlesif RUBY_PLATFORM =~ /win32/
et, dans certains cas,RUBY_PLATFORM
retournei386-mingw32
.Je pense que vous êtes absent une
end
OriginalL'auteur manveru
Vous pouvez lire ici un bon article illustré:
http://kpumuk.info/ruby-on-rails/colorizing-console-ruby-script-output/
Je pense que le réglage de la console de couleur de texte est assez spécifique à la langue. Voici un exemple en C# à partir de MSDN:
De la Console.ForegroundColor est la propriété de la mise en texte de couleur.
OriginalL'auteur artur02
Vous pouvez utiliser une séquence d'échappement ANSI, mais qui ne sont pas ce que vous voulez sous les versions modernes de Windows. Wikipedia a un article très instructif:
http://en.wikipedia.org/wiki/ANSI_escape_code
Donc la réponse à votre question de départ est presque certainement "non". Toutefois, vous pouvez modifier la couleur de premier plan sans écrire une séquence d'échappement, par exemple par l'invocation d'une fonction API Win32. Je ne sais pas comment faire ce genre de chose en Ruby sur le dessus de ma tête, mais quelqu'un d'autre semble avoir réussi:
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/241925
J'imagine que vous voulez les utiliser 4 pour le rouge foncé ou 12 pour le rouge vif, et 7 pour restaurer la couleur par défaut.
Espérons que cette aide!
OriginalL'auteur zaphod
ANSI codes d'échappement:
Merci microsoft 🙁
OriginalL'auteur Orion Edwards
color [background][foreground]
Où les couleurs sont définies comme suit:
Par exemple, pour changer le fond bleu et à l'avant-plan gris, vous tapez:
color 18
OriginalL'auteur Michael
J'ai créé une petite croix-plate-forme de joyau qui gère cela de façon transparente en cours d'exécution sur Windows ou POSIX systèmes, en vertu de l'IRM et de JRuby.
Il n'a pas de dépendances, et utilise la norme ANSI codes sur les systèmes POSIX, et soit FFI (JRuby) ou Fiddler (IRM) pour Windows.
À utiliser, il suffit de:
ColorConsole fournit des méthodes pour la sortie des lignes de texte dans différentes couleurs, à l'aide de la Console.écriture et de la Console.place des fonctions.
Visiter la page d'accueil du projet à https://github.com/agardiner/color-console pour plus de détails.
OriginalL'auteur Adam
Autant que je sache, il n'est pas possible avec une ligne de commande, il est d'une seule couleur...
OriginalL'auteur Mitchel Sellers
Vous pouvez changer la couleur à l'aide d'un simple programme C#, http://powerof2games.com/node/31 décrit comment vous pouvez l'envelopper de la console de sortie pour obtenir l'effet.
OriginalL'auteur betelgeuce
Vous voulez ANSI codes d'échappement.
OriginalL'auteur Adam Rosenfield
Le C/C++ standard de spécification pour la sortie de la ligne de commande n'est pas en mesure de spécifier les fonctionnalités de modification de la couleur de la fenêtre de la console. Cela dit, il existe de nombreuses fonctions dans Win32 pour faire une telle chose.
La façon la plus simple de changer la couleur de la console Win32 est par le biais du système de commande en iostream.h. Cette fonction appelle une commande DOS. Pour changer les couleurs, nous allons l'utiliser pour invoquer la commande couleur. Par exemple,
system("Color F1");
fera la console bleu fonce blanc.DOS Couleurs
Les couleurs disponibles pour une utilisation avec la commande sont les seize DOS couleurs représentées chacune avec un chiffre hexadécimal. La première étant l'arrière-plan et le second, le premier plan.
Juste cette petite touche de couleur les rend les programmes de console plus agréable visuellement. Cependant, la Couleur de commande va changer la couleur de l'ensemble de la console. Le contrôle individuel de cellules, nous avons besoin d'utiliser les fonctions de windows.h.
Ne faire que vous avez besoin pour utiliser le
SetConsoleAttribute
fonctionhttp://msdn.microsoft.com/en-us/library/ms686047.aspx
OriginalL'auteur Orion Adrian
Beaucoup de l'ancien ANSI Les Codes De Couleurs travail. Le code pour un avant-plan rouge est quelque chose comme Escape-[31m. Escape est le caractère 27, alors que le "\033[31m" ou "\x1B[31m", selon votre échapper régime.
[39m est le code pour revenir à la couleur par défaut.
Il est également possible de spécifier plusieurs codes à la fois de premier plan et d'arrière-plan de couleur simultanément.
Vous pourriez avoir à charger ANSI.sys, voir cette page.
OriginalL'auteur davenpcj
En fin de compte, vous devez appeler SetConsoleTextAttribute. Vous pouvez obtenir un écran de la console tampon poignée de GetStdHandle.
OriginalL'auteur Mike Dimmick
J'ai été en utilisant un logiciel freeware windows queue programme appelé baretail (google) pour les âges qui vous permet de faire un windows-appified version d'unix queue de commande. Il vous permet de coloriser les lignes dépend de ce que les mots clés que vous définissez. Ce qui est bien, une solution n'est pas lié à une langue spécifique ou de configuration, etc, il vous suffit de définir votre schéma de couleurs et ses sur comme donkey kong. Dans mon top 10 personnel freeware aides!
OriginalL'auteur Mike Duncan