Public/Start-Countdown.ps1
<#
.SYNOPSIS Zeigt die Restlaufzeit. .EXAMPLE Start-Countdown -Minutes 15 -Title 'Kaffeepause-Ende in' #> function Start-Countdown { [CmdletBinding()] param ( [ValidateRange(1, 525600)] # 1 Minute bis 1 Jahr [decimal]$Minutes = 0, [ValidateRange(1, 525600)] # 1 Minute bis 1 Jahr [decimal]$Seconds = 0, [ValidateLength(3, 50)] [string]$Title = 'Restlaufzeit des Countdowns' ) $Private:My = [Hashtable]::Synchronized(@{}) $Private:My.Dauer = New-TimeSpan -Minutes $Minutes -Seconds $Seconds $Private:My.Ende = (Get-Date) + $Private:My.Dauer $Private:My.HundertProzentWert = $Private:My.Dauer.TotalSeconds while (1 -eq 1) { $Private:My.Differenz = New-TimeSpan -End $Private:My.Ende if ($Private:My.Differenz.Ticks -le 0) { break } Clear-Host "▓" * ($Private:My.Differenz.TotalSeconds / $Private:My.HundertProzentWert * 100) $Title | Write-Host -ForegroundColor Yellow if ($Private:My.Differenz.Hours -gt 1) { "$($Private:My.Differenz.Hours) Stunden " | Write-Host -NoNewline -ForegroundColor Cyan } elseif ($Private:My.Differenz.Hours -gt 0) { "$($Private:My.Differenz.Hours) Stunde " | Write-Host -NoNewline -ForegroundColor Cyan } if ($Private:My.Differenz.Minutes -gt 1) { "$($Private:My.Differenz.Minutes) Minuten " | Write-Host -NoNewline -ForegroundColor Green } elseif ($Private:My.Differenz.Minutes -gt 0) { "$($Private:My.Differenz.Minutes) Minute " | Write-Host -NoNewline -ForegroundColor Green } if ($Private:My.Differenz.Seconds -gt 1) { "$($Private:My.Differenz.Seconds) Sekunden" | Write-Host -NoNewline -ForegroundColor Red } elseif ($Private:My.Differenz.Seconds -gt 0) { "$($Private:My.Differenz.Seconds) Sekunde" | Write-Host -NoNewline -ForegroundColor Red } " !" | Write-Host -ForegroundColor White "▓" * ($Private:My.Differenz.TotalSeconds / $Private:My.HundertProzentWert * 100) Start-Sleep -Seconds 1 } } <# Start-Countdown -Title 'Kaffeepause-Ende in' -Minutes 2 #> |