PowerTip: Write PowerShell Output in Color Without Using Write-Host

PowerTip: Write PowerShell Output in Color Without Using Write-Host

  • Comments 2
  • Likes

Summary: Write colorized output to the Windows PowerShell console without using the Write-Host cmdlet.

Hey, Scripting Guy! Question How can you write output to the Windows PowerShell console without using the Write-Host cmdlet?

Hey, Scripting Guy! Answer Set ForegroundColor to a different color by using $host.Ui.RawUi, and then use the Write-Output cmdlet to write the output. When you are finished, set the ForegroundColor back to its original color.

PS C:\> $t = $host.ui.RawUI.ForegroundColor

PS C:\> $host.ui.RawUI.ForegroundColor = "DarkGreen"

PS C:\> Write-Output "this is green output"

this is green output

PS C:\> $host.ui.RawUI.ForegroundColor = $t

PS C:\>

Your comment has been posted.   Close
Thank you, your comment requires moderation so it may take a while to appear.   Close
Leave a Comment
  • In what use cases would we want to do this instead of Write-Host ?

    Thanks

  • When you use Write-Host the content is written directly to the host and not passed on to the rest of the Pipeline. Useful when you want to print out status or informative messages while still passing extra content along in the pipeline, but not helpful if you want colored output.