src/TaskbarProgress.ps1
|
$script:TaskbarProgressEnabled = $false if ($Host.UI.SupportsVirtualTerminal -and -not [System.Console]::IsOutputRedirected) { $script:TaskbarProgressEnabled = $true } $script:TaskbarProgressEsc = [char]27 $script:TaskbarProgressBel = [char]7 function Write-TaskbarProgress { param([int]$Percent) if (-not $script:TaskbarProgressEnabled) { return } if ($PSBoundParameters.ContainsKey('Percent')) { $p = [Math]::Max(0, [Math]::Min(100, $Percent)) Write-Host -NoNewline ($script:TaskbarProgressEsc + "]9;4;1;$p" + $script:TaskbarProgressBel) } else { Write-Host -NoNewline ($script:TaskbarProgressEsc + "]9;4;3" + $script:TaskbarProgressBel) } } function Write-TaskbarProgressClear { if ($script:TaskbarProgressEnabled) { Write-Host -NoNewline ($script:TaskbarProgressEsc + "]9;4;0" + $script:TaskbarProgressBel) } } function Write-TaskbarProgressError { if ($script:TaskbarProgressEnabled) { Write-Host -NoNewline ($script:TaskbarProgressEsc + "]9;4;2;100" + $script:TaskbarProgressBel) } } |