Jump to content
Melde dich an, um diesen Inhalt zu abonnieren  
Kuddel071089

Powershell Countdowntimer

Empfohlene Beiträge

Hallo zusammen,

 

ich habe mir für ein Skript einen Countdwn gebaut, der jewiels ein Anzahl an Sekunden herunterzählt.

 

Diesen habe ich jetzt auf MInuten umgebaut und würde gerne die letzten Minute wiederum in Sekunden runterzählen.

 

Klappt nur leider nicht:

#Wartezeit von 5 Minuten
$waitMinutes = 5
$waitMinutes..0 | Foreach-Object {
cls
Write-Host "Wartezeit:" -ForegroundColor Yellow -NoNewline
Write-Host " $_" -ForegroundColor Red -NoNewline
Write-Host " Minuten" -ForegroundColor Yellow -NoNewline
Start-Sleep -Seconds 60

if($_ -eq 1) {
$waitSeconds = 60
$waitSeconds..0 | Foreach-Object {
cls
    Write-Host "Wartezeit:" -ForegroundColor Yellow -NoNewline
    Write-Host " $_" -ForegroundColor Red -NoNewline
    Write-Host " Sekunden" -ForegroundColor Yellow -NoNewline
    Start-Sleep -Seconds 1}
}
}

Hat jemand eine Idee wo der Fehler ist ?

 

Am besten wäre natürlich, wenn die Zeit in Minuten und Sekunden heruntergezählt wird:
Wartezeit 5:45 zb. Aber das ist sicher noch schwerer umsetzbar

 

 

Danke schon einmal

bearbeitet von Kuddel071089

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

geht alles ... probier ma das hier

$Start = Get-Date
$Duration = New-TimeSpan -Minutes 5
Do{
    Start-Sleep -Seconds 1
    $ElapsedTime = New-TimeSpan -Start $Start -End $(Get-Date)
    $Time = "{0:D2}:{1:D2}" -f $ElapsedTime.Minutes,  $ElapsedTime.Seconds
    Write-Progress $Time 
}
While((Get-date) -lt ($Start + $Duration))

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

 

geht alles ... probier ma das hier

$Start = Get-Date
$Duration = New-TimeSpan -Minutes 5
Do{
    Start-Sleep -Seconds 1
    $ElapsedTime = New-TimeSpan -Start $Start -End $(Get-Date)
    $Time = "{0:D2}:{1:D2}" -f $ElapsedTime.Minutes,  $ElapsedTime.Seconds
    Write-Progress $Time 
}
While((Get-date) -lt ($Start + $Duration))

Geht das ganze auch Rückwärts ? Jetzt wird ja von 0 bis 5 Minuten gezählt.

Ich hätte aber gern von 5 bis 0 Minuten

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Moin,

$Start = Get-Date
$Duration = New-TimeSpan -Minutes 5
$End = $Start + $Duration
Do{
    Start-Sleep -Seconds 1
    $DisplayTime = New-TimeSpan -Start $(Get-Date) -End $End
    $Time = "{0:D2}:{1:D2}" -f ($DisplayTime.Minutes),  ($DisplayTime.Seconds)
    Write-Progress $Time 
}
While((Get-date) -lt $End)

Gruß, Nils

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Und im Ursprungsskript wäre es so zu ändern (quick and dirty):

if($_ -gt 1) {
$waitSeconds = 60
$waitSeconds..0 | Foreach-Object {
cls
    Write-Host "Wartezeit:" -ForegroundColor Yellow -NoNewline
    Write-Host " $_" -ForegroundColor Red -NoNewline
    Write-Host " Sekunden" -ForegroundColor Yellow -NoNewline
    if($_ -eq 0)
    {Write-Host "fertig" -ForegroundColor Green
     break
    }
    else {Write-Verbose "nix zu tun"}
    Start-Sleep -Seconds 1}
}
else {Write-Verbose "nix zu tun"}
}
bearbeitet von 4077

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Moin,

$Start = Get-Date
$Duration = New-TimeSpan -Minutes 5
$End = $Start + $Duration
Do{
    Start-Sleep -Seconds 1
    $DisplayTime = New-TimeSpan -Start $(Get-Date) -End $End
    $Time = "{0:D2}:{1:D2}" -f ($DisplayTime.Minutes),  ($DisplayTime.Seconds)
    Write-Progress $Time 
}
While((Get-date) -lt $End)

Gruß, Nils

 

Na das sieht doch super aus, vielen Dank :-)

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte überlege Dir, ob es nicht sinnvoller ist ein neues Thema zu erstellen.

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
Melde dich an, um diesen Inhalt zu abonnieren  

×