Cleptography Posted June 26, 2011 Share Posted June 26, 2011 I would like to print text in color in cmd.exe and return to the previous color. Can someone point me in the right direction as to how this can be accomplished. Thank You Link to comment Share on other sites More sharing options...
UEZ Posted June 26, 2011 Share Posted June 26, 2011 Look here: Br, UEZ Please don't send me any personal message and ask for support! I will not reply! Selection of finest graphical examples at Codepen.io The own fart smells best! ✌Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!¯\_(ツ)_/¯ ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ Link to comment Share on other sites More sharing options...
Cleptography Posted June 26, 2011 Author Share Posted June 26, 2011 (edited) Thank you UEZ I ran the example and was given an error that $FOREGROUND_RED variable was not defined so I changed it to $COLOR_1 which printed the text in color. expandcollapse popup#include <Console.au3> Main() Func Main() Local $Name Local $Age Local $Answer Local $Continue = True While $Continue Cout("Enter your name: ") Cin($Name) Cout("Enter your age: ") Cin($Age) Cout("Do you want your answers printed in red? y/n: ") Cin($Answer) If StringInStr($Answer,"y") Then Cout(@LF & "Your name is ") Cout($Name & @LF,$FOREGROUND_RED) Cout("You were born in ") Cout(@Year - $Age & @LF,$FOREGROUND_RED) Else Cout(@LF & "Your name is ") Cout($Name & @LF) Cout("You were born in ") Cout(@Year - $Age & @LF) EndIf $Answer = "" Cout(@LF & "Do you want to try again? y/n: ") Cin($Answer) If StringInStr($Answer,"n") Then $Continue = False EndIf WEnd system("pause") EndFunc I would like this so that it stays native to the current command window it was run from and not having to spawn a new console so I tried the below and compile as a console application and ran it from the command console. #include <Console.au3> Cout($cmdline[1] & @LF, $COLOR_252) But this prints the line in the default color and in the defined color. I just want it to print the line once and in the color I specify, how can I do this. Thank you again. Edited June 26, 2011 by Cleptography Link to comment Share on other sites More sharing options...
JoHanatCent Posted July 1, 2011 Share Posted July 1, 2011 I would like this so that it stays native to the current command window it was run from and not having to spawn a new console so I tried the below and compile as a console application and ran it from the command console.But this prints the line in the default color and in the defined color. I just want it to print the line once and in the color I specify, how can I do this. Thank you again. There are some nasty ways to do this in some .bat files BUT that is not very reliable. Also some 3rd party software can accomplish that.My recomendation would rather be to create a GUI. If you like it can even look like a console/Command prompt.Enter you commands from there and so control al the colour, input and output from there. Link to comment Share on other sites More sharing options...
Kaloth Posted November 29, 2011 Share Posted November 29, 2011 Hi all, I read this forum a while back when trying to get coloured text in cmd.exe and thought I'd post now that I have a solution. I eventually gave up searching, all I found was endless stuff about ANSI commands and the cmd.exe properties menu which didn't suit what I wanted. So, I made my own solution. It's a tiny exe (~7kb) called col.exe that can change the current cmd.exe text attributes. For example.. col -fg=ri Will get you 'intense' (ie: fully saturated) red text. You can download it here: http://www.finalfury.co.uk/view_post.php?f=tools&id=122 and here's a print out of the full set of options available.. Col, by Chris Plant. http://www.finalfury.co.uk Available options.. -fg=[rgbiu] Set the foreground via one or more of.. r = red g = green b = blue i = intense -bg=[rgbi] Set the background via one or more of.. r = red g = green b = blue i = intense -gr=[tlrb] Set the grid via one or more of.. t = top grid line l = left grid line r = right grid line b = bottom grid line -add Makes changes additive. By default they are absolute. -praw Print the current attributes to stdout. -graw Get the current attributes. Returned in the program exit code. -sraw=<value> Set the current attributes from a raw decimal value. Note: Run without any options to get white text on a black background. Useful if you can't see what you're doing! Link to comment Share on other sites More sharing options...
Mat Posted November 29, 2011 Share Posted November 29, 2011 Have you seen or AutoIt Project Listing Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now