Public/System/Write-HostFormatted.ps1
function Write-HostFormattted { [CmdletBinding()] param( [Parameter(Position = 0, ValueFromPipeline = $true, ValueFromRemainingArguments = $true)] [System.Object] $Object, [Alias('nnl')] [switch] $NoNewline, [switch] $AnsiColors, [Alias('fg')] [System.ConsoleColor] $ForegroundColor, [Alias('bg')] [System.ConsoleColor] $BackgroundColor, [validateSet("Bold","Inverted")] [string[]]$Style ) begin { } process { $code=GetAnsiCode $ForegroundColor $code+=GetAnsiCode $BackgroundColor 10 $code+=($Style|ForEach-Object{GetAnsiCode $_})-join "" $code+=$Object $code+=GetAnsiCode "Default" $code } end { } } function GetAnsiCode($name,$offSet){ $ansiCodes = @{Default=0;Bold=1;Underline=4;Inverted=7;Black=30;Red=31;Green=32;Yellow=33;Blue=34;Magenta=35;Cyan=36;White=37;BrightBlack=90;BrightRed=91;BrightGreen=92;BrightYellow=92;BrightBlue=94;BrightMagenta=95;BrightCyan=96;BrightWhite=97} $esc = "$([char]27)" $code=$ansiCodes["$name"]+$offSet if ($code){ "$esc[$code`m" } } |