Windows Tip Sheet
Color My World
Cure PowerShell's Color-blindness with this quick tip.
- By Jeffery Hicks
- 03/14/2007
This week I have another PowerShell tip that might help you make the
transition from the old command shell. One feature I like in the
CMD shell is Color. This command lets me change the background and font
color of my window. Since I'm likely to have several command windows
open at once, using different color schemes helps me stay organized.
While PowerShell can execute many CMD programs, it can't recognize
Color. However, I can work around that limitation by adding this function
and alias to my PowerShell profile:
function Get-color {
Param ([string]$scheme)
cmd.exe /c color $scheme
}
Set-Alias color Get-color
The Get-color function takes a run time parameter I call $scheme. In
the CMD shell, this parameter is the color attribute I want to set for
the console such as "fc," which will produce a light-red font
on a white background. You can also use the /? switch to display help and get other properties for $scheme.
Get-color actually calls the CMD shell and runs the color command.
The alias is the same as the CMD command, so you don't have to learn
anything new. The beauty of this is that Windows goes ahead and applies
the color scheme to the PowerShell console window.
Tech HelpJust An
E-Mail Away |
Got a Windows, Exchange or virtualization question
or need troubleshooting help? Or maybe you want a better
explanation than provided in the manuals? Describe
your dilemma in an e-mail to the MCPmag.com editors
at [email protected];
the best questions get answered in this column and garner
the questioner with a nifty Redmond T-shirt.
When you send your questions, please include your
full first and last name, location, certifications (if
any) with your message. (If you prefer to remain anonymous,
specify this in your message, but submit the requested
information for verification purposes.)
|
|
|
Be aware of some of its limitations. In the CMD shell, running color again without
any parameters restores the original color scheme. This does not work
with my PowerShell function. There is a way to query the PowerShell console
to get the current colors, but the colors are listed as names and the
color command, oddly enough, uses codes. Not that it couldn't be done, but I'll
leave that as an exercise for you. I'll even give you a a hint:
$host.ui.rawui.
About the Author
Jeffery Hicks is an IT veteran with over 25 years of experience, much of it spent as an IT infrastructure consultant specializing in Microsoft server technologies with an emphasis in automation and efficiency. He is a multi-year recipient of the Microsoft MVP Award in Windows PowerShell. He works today as an independent author, trainer and consultant. Jeff has written for numerous online sites and print publications, is a contributing editor at Petri.com, and a frequent speaker at technology conferences and user groups.