Public/Logging/Write-HostProgress.ps1
function Write-HostProgress { param ( [Parameter()] [String]$Message, [Parameter()] [ValidateSet("Success", "Failed", "Neutral", "Information")] [String]$Status = "Information", [Parameter()] [int] $Total, [Parameter()] [int] $Count ) $_ESC = "$([char]27)" $_FG = "$_ESC[38;5" $_BG = "$_ESC[48;5" $_Yellow = "$([char]27)[38;5;11m" $_Cyan = "$([char]27)[1;49;96m" $_White = "$([char]27)[38;5;3m" $_Red = "$([char]27)[91m" $_Green = "$([char]27)[38;5;2m" switch ($Status) { "Success" { $Color = $_Green } "Failed" { $Color = $_Red } "Neutral" { $Color = $_Cyan } Default { $Color = $_White } } $Pct = [int](($Count / $Total) * 100) $TimeStamp = "${_Yellow}[${_White}{0}%${_Yellow}]${_Yellow}[${_White}{1}${_Yellow}]${_Yellow}[${Color}{2}${_Yellow}]: ${Color}{3}" -f $Pct, (Get-Date).ToString("HH:mm:ss"), $Status, $Message Write-host $TimeStamp } |