< Back

Write-PSFHostColor

Sun Jan 19, 2020 6:46 pm

NAME Write-PSFHostColor



SYNOPSIS

Function that recognizes html-style tags to insert color into printed text.





SYNTAX

Write-PSFHostColor [[-String] <String[]>] [[-DefaultColor] {Black | DarkBlue | DarkGreen | DarkCyan | DarkRed |

DarkMagenta | DarkYellow | Gray | DarkGray | Blue | Green | Cyan | Red | Magenta | Yellow | White}] [-NoNewLine]

[[-Level] {Critical | Important | Output | Host | Significant | VeryVerbose | Verbose | SomewhatVerbose | System |

Debug | InternalComment | Warning}] [<CommonParameters>]





DESCRIPTION

Function that recognizes html-style tags to insert color into printed text.



Color tags should be designed to look like this:

<c="<console color>">Text</c>

For example this would be a valid string:

"This message should <c="red">partially be painted in red</c>!"



This allows specifying color within strings and avoids having to piece together colored text in multiple calls to

Write-Host.

Only colors that are part of the ConsoleColor enumeration can be used. Bad colors will be ignored in favor of the

default color.





PARAMETERS

-String <String[]>

The message to write to host.



Required? false

Position? 1

Default value

Accept pipeline input? true (ByValue)

Accept wildcard characters? false



-DefaultColor

Default: (Get-DbaConfigValue -Name "message.infocolor")

The color to write stuff to host in when no (or bad) color-code was specified.



Required? false

Position? 2

Default value (Get-PSFConfigValue -FullName "psframework.message.info.color")

Accept pipeline input? false

Accept wildcard characters? false



-NoNewLine [<SwitchParameter>]

Specifies that the content displayed in the console does not end with a newline character.



Required? false

Position? named

Default value False

Accept pipeline input? false

Accept wildcard characters? false



-Level

By default, all messages to Write-PSFHostColor will be printed to host.

By specifying a level, it will only print the text if that level is within the range visible to the user.



Visibility is controlled by the following two configuration settings:

psframework.message.info.maximum

psframework.message.info.minimum



Required? false

Position? 3

Default value

Accept pipeline input? false

Accept wildcard characters? false



<CommonParameters>

This cmdlet supports the common parameters: Verbose, Debug,

ErrorAction, ErrorVariable, WarningAction, WarningVariable,

OutBuffer, PipelineVariable, and OutVariable. For more information, see

about_CommonParameters (https:/go.microsoft.com/fwlink/?LinkID=113216).



INPUTS



OUTPUTS



-------------------------- EXAMPLE 1 --------------------------



Write-PSFHostColor -String 'This is going to be <c="red">bloody red</c> text! And this is <c="green">green

stuff</c> for extra color'



Will print the specified line in multiple colors









-------------------------- EXAMPLE 2 --------------------------



$string1 = 'This is going to be <c="red">bloody red</c> text! And this is <c="green">green stuff</c> for extra

color'



$string2 = '<c="red">bloody red</c> text! And this is <c="green">green stuff</c> for extra color'

$string3 = 'This is going to be <c="red">bloody red</c> text! And this is <c="green">green stuff</c>'

$string1, $string2, $string3 | Write-PSFHostColor -DefaultColor "Magenta"



Will print all three lines, respecting the color-codes, but use the color "Magenta" as default color.









-------------------------- EXAMPLE 3 --------------------------



PS C:\\>$stringLong = @"



Dear <c="red">Sirs</c><c="green"> and</c> <c="blue">Madams</c>,



it has come to our attention that you are not sufficiently <c="darkblue">awesome!</c>

Kindly improve your <c="yellow">AP</c> (<c="magenta">awesome-ness points</c>) by at least 50% to maintain you

membership in Awesome Inc!



You have <c="green">27 3/4</c> days time to meet this deadline. <c="darkyellow">After this we will unfortunately

be forced to rend you assunder and sacrifice your remains to the devil</c>.



Best regards,

<c="red">Luzifer</c>

"@

Write-PSFHostColor -String $stringLong



Will print a long multiline text in its entirety while still respecting the colorcodes











RELATED LINKS