So in Bash you just configure PS1
to add colors to your prompt. I'm talking about the prompt proper, not the color of the foreground (text) or the background. And it's really easy in Bash and it helps a lot if you need to find your commands in a sea of messy text output.
Can you achieve the same for cmd.exe
, or as a fallback, for PowerShell? A colored prompt?
I don't know if it could be done in the old days before Win32 by loading ANSI.SYS
. I think that was just to make the foreground and the background colorful. But I might be wrong. And anyway, those days are gone, and in our modern times (I know), we're using cmd.exe
, or PowerShell.
I know both cmd.exe and PowerShell are capable of colored output. For cmd.exe, just run color /?
to find out. But my question is not about the foreground and the background, that's all known to humankind - it's about just changing the prompt color for cmd.exe, probably via the PROMPT
environment variable as via the PS1
variable for Bash? Is it possible?
And no, Cygwin is not an alternative for this. I'm a Cygwin user with MinTTY and all, and I love it. But I still want my cmd.exe
prompt colored, too.
You can add a Prompt function to your profile in Powershell to pretty much do whatever you want with the prompt. So for instance something like this:
function prompt
{
Write-Host "PS $(get-location)>" -nonewline -foregroundcolor Magenta
return ' '
}
To open or create your PowerShell profile, run this:
if(Test-Path $profile){notepad $profile}else{New-Item -path $profile -type file -force}