in reply to Colored text output in Windows cmd

astronogun:

It's certainly possible, though I would advise using a module to do it (I use Term::ANSIColor). Use google to find the escape codes supported by the windows console, and then write the appropriate functions. I found a reference to ANSI.SYS, which looks like a reasonable reference. Under the "Set Attribute" escape code, after a description of the escape sequence, they list a few examples:

{ESC}[1m High intensity. {ESC}[1;5m High intensity and blink. {ESC}[30;46m Black foreground, cyan background. {ESC}[m Turn off all attributes. {ESC}[0m Turn off all attributes.

So you should be able to see if they're the correct escape codes with a quickie like so:

use strict; use warnings; print "\x1b[30;46m This should be black on cyan\n"; print "\x1b[0m And this should be back to normal\n";

Update: Added link for Term::ANSIColor.

...roboticus

When your only tool is a hammer, all problems look like your thumb.

Replies are listed 'Best First'.
Re^2: Colored text output in Windows cmd
by BrowserUk (Patriarch) on May 12, 2012 at 15:47 UTC
    I found a reference to ANSI.SYS,

    Ansi.sys is an ancient 16-bit driver that hasn't worked with anything since Windows ME.

    The OP has already found the correct solution(s) -- Win32::Console::Ansi -- all he needs to do is install it/them correctly.

    Pointing him at ancient 16-bit device drivers is not helpful. If you were a windows users, you'd presumably know that!


    With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
    Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
    "Science is about questioning the status quo. Questioning authority".
    In the absence of evidence, opinion is indistinguishable from prejudice.

    The start of some sanity?

      BrowserUk:

      I certainly didn't intend to imply that he should use ANSI.sys, I just thought it was a good reference to the escape codes that (I think) the command console uses. (The tiny example was to let the OP find out if those escape sequences are the correct ones--I suspect so, but am not sure.) I agree that actually trying to use the ANSI.sys device driver would be terrible.

      ...roboticus

      When your only tool is a hammer, all problems look like your thumb.

        I certainly didn't intend to imply that he should use ANSI.sys,

        Then I apologise for having misinterpreted you.

        That said, Win32::Console::ANSI details all the escape codes it supports; and goes on to show how to avoid needing to know them.


        With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
        Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
        "Science is about questioning the status quo. Questioning authority".
        In the absence of evidence, opinion is indistinguishable from prejudice.

        The start of some sanity?