< Back
Write-PSFHostColor
Post
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
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