Jump to content

Fehlende Sekunde in Count Down Timer (Batch-Skript)


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo,
wenn ich auf der Eingabeaufforderung für meinen Count Down Timer eine Zahl für Minuten eingebe, z.B. 7, dann fängt der Timer ab 6'59" an. Ich möchte aber, dass er ab 7'00" anfängt. Hat jemand eine Idee, wie man es erreichen kann?

@echo off
mode 30,3
color 74
echo.
set /p input=Zeit in Minuten eingeben: %
set /a time=%input%-1
cls
for /l %%x in (%time%,-1,0) do (
    for /l %%y in (59,-1,0) do (
        echo.
        if %%y gtr 9 (
            < nul set /p "=Sie haben noch %%x'%%y" Zeit!"
        ) else (
            < nul set /p "=Sie haben noch %%x'0%%y" Zeit!"
        )
        ping localhost -n 2 > nul
        cls
    )
)

Gruß

Link zu diesem Kommentar

Hallo,

ich habe bereits verschieden Varianten ausprobiert, die zu keinem brauchbaren Ergebnis geführt haben. Deshalb habe ich hier meine Frage gestellt, in der Hoffnung, dass den verbalen Ratschlägen praktische Beispiele folgen.
Obwohl mein momentanes Können, in der Batch-Programmierung, Grenzen für die Lösung meines Vorhabens setzt, bin ich der Meinung, dass die Aufgabe als Batch-Skript machbar ist (nicht unbedingt in der von mir vorgeschlagenen Form). Ich Hoffte, dass sich hier eingefleischte Batch-Profis finden, die mein Problem als Herausforderung sehen würden und es lösen. Dabei könnte ich und die anderen Mitleser meines Beitrags wieder etwas lernen.

 

Gruß

bearbeitet von rybog
Link zu diesem Kommentar

Hallo,
da ich bis jetzt keine Hilfe bekommen habe, die man in einem Forum normalerweise erwartet, habe ich letztendlich eine Uhr selbst gebastelt. Der Code sieht zwar für mich schrecklich aus (an einer Optimierung muss ich noch arbeiten), auf dem Bildschirm aber, fängt die angezeigte Zeit bei X'00" an, und endet bei 0'00". Und genau das wollte ich erreichen. Am Ende kommen noch fünf Pieptöne dazu. Selbst ist der Mann!

@echo off
title CountDownTimer by rybog
mode 30,3
color 74
echo.
set /p "input= Zeit in Minuten eingeben: %"
cls
setlocal EnableDelayedExpansion
for /l %%x in (%input%,-1,0) do (
    if %%x gtr 0 (
        for /l %%y in (60,-1,1) do (
            echo.
            if %%y equ 60 (
                < nul set /p "= Sie haben noch %%x'00" Zeit."
            ) else (
                if %%y gtr 9 (
                    set /a min=%%x-1
                    < nul set /p "= Sie haben noch !min!'%%y" Zeit."
                ) else (
                    < nul set /p "= Sie haben noch !min!'0%%y" Zeit."
                )
            )
            ping -n 2 localhost > nul
            cls
        )
    ) else (
        echo.
        < nul set /p "= Sie haben noch %%x'00" Zeit."
        ping -n 2 localhost > nul
        cls
    )
)
for /l %%x in (1,1,5) do (
    echo •
    ping -n 1 localhost > nul
)

@daabm
Ich habe nichts gegen deinen Vorschlag, nur, so zu machen, wie du es vorschlägst, kann ich leider noch nicht. Ich würde mich aber sehr freuen, wenn du es zeigst, wie man in meinem ersten Skript deinen Vorschlag verwirklichen kann. Oder zeige es bitte, wie man es mit einer anderen Formulierung machen kann. Übrigens, eine andere Sprache soll es nicht sein, sonst hätte ich einfach irgendeine Shareware-Uhr genommen.

Gruß

bearbeitet von rybog
Link zu diesem Kommentar
@echo off
mode 30,3
color 74
echo.
set /p input=Zeit in Minuten eingeben: %
set /a time=%input%-1
cls
echo Sie haben noch %input%'00 Zeit!
for /l %%x in (%time%,-1,0) do (
    for /l %%y in (59,-1,0) do (
        echo.
        ping localhost -n 2 > nul
        if %%y gtr 9 (
            < nul set /p "=Sie haben noch %%x'%%y" Zeit!"
        ) else (
            < nul set /p "=Sie haben noch %%x'0%%y" Zeit!"
        )
        cls
    )
)

 

 

Was für Hilfe erwartest Du denn in einem Forum? Komplettpaket mit Schleifchen und Pampers? Und was ist an der eingefügten echio-Zeile vor der Schkleife und dem Verschieben des ping jetzt so schwer?

bearbeitet von daabm
Link zu diesem Kommentar

Hallo,
genau das, was du vorgeschlagen hast, diese kleine Änderung meines Skripts, erwarte ich von einem Forum. Abgesehen davon, dass deine Änderung nicht richtig funktioniert (anscheinend hast du sie nicht getestet), hast du mir einen Denkanstoß gegeben, um es richtig zu machen.

@echo off
mode 30,3
color 74
echo.
set /p "input=Zeit in Minuten eingeben: %"
set /a time=%input%-1
cls
echo.
echo Sie haben noch %input%'00" Zeit!
ping -n 2 localhost > nul
cls
for /l %%x in (%time%,-1,0) do (
    for /l %%y in (59,-1,0) do (
        echo.
        if %%y gtr 9 (
            < nul set /p "=Sie haben noch %%x'%%y" Zeit!"
        ) else (
            < nul set /p "=Sie haben noch %%x'0%%y" Zeit!"
        )
        ping -n 2 localhost > nul
        cls
    )
)

Vielen Dank und Gruß

bearbeitet von rybog
Link zu diesem Kommentar

genau das, was du vorgeschlagen hast, diese kleine Änderung meines Skripts, erwarte ich von einem Forum.

 

Dann hast Du möglicherweise zu hohe Erwartungen - die meisten Foren, die ich kenne, liefern KEINE fertigen Lösungen, sondern nur Hinweise...

 

Aber wenn es Dich auf die richtige Idee gebracht hat, ist ja alles gut :cool:

 

(Nein, ich hatte das nicht getestet - war nur so "aus dem Gedächtnis"...)

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...