rybog 0 Geschrieben 20. Mai 2014 Melden Teilen Geschrieben 20. Mai 2014 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ß Zitieren Link zu diesem Kommentar
s_sonnen 20 Geschrieben 20. Mai 2014 Melden Teilen Geschrieben 20. Mai 2014 (bearbeitet) Hi rybog. Vielleicht solltest Du ihn einfach bei x + 1sec anfangen lassen zu zählen. Prizipiell funktioniert's ja richtig, der Wert nach dem ersten Dekrement ist 6:59. ciao und 'nen angenehmen Dienstagnachmittag M. bearbeitet 20. Mai 2014 von s_sonnen Zitieren Link zu diesem Kommentar
rybog 0 Geschrieben 20. Mai 2014 Autor Melden Teilen Geschrieben 20. Mai 2014 Hallo, so weit war ich schon. Nur wenn ich 1 Sekunde addiere, dann wird es auf dem Bildschirm 6'60" angezeigt und nicht 7'00". Gruß Zitieren Link zu diesem Kommentar
daabm 1.354 Geschrieben 20. Mai 2014 Melden Teilen Geschrieben 20. Mai 2014 Bau einfach ne Extra-Zeile an, die genau diese eine Ausgabe übernimmt und danach natürlich auch den ping -n 2... Anders geht das in Batch nicht, wenn Du nich die Zeit erst in Sekunden umrechnen willst, dann nur eine Schleife mit Sekunden verwendest und innerhalb der Schleife dann wieder in mm:ss umrechnest... Würde ich mir sparen :p Zitieren Link zu diesem Kommentar
rybog 0 Geschrieben 21. Mai 2014 Autor Melden Teilen Geschrieben 21. Mai 2014 (bearbeitet) 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 21. Mai 2014 von rybog Zitieren Link zu diesem Kommentar
daabm 1.354 Geschrieben 21. Mai 2014 Melden Teilen Geschrieben 21. Mai 2014 Ws gefällt Dir an meinem Vorschlag nicht? Eine Komplettlösung mache ich Dir allerdings nicht, ich würde solche Anforderungen entweder umformulieren oder in anderen Sprachen lösen :cool: Zitieren Link zu diesem Kommentar
rybog 0 Geschrieben 22. Mai 2014 Autor Melden Teilen Geschrieben 22. Mai 2014 (bearbeitet) 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 ) @daabmIch 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 22. Mai 2014 von rybog Zitieren Link zu diesem Kommentar
daabm 1.354 Geschrieben 22. Mai 2014 Melden Teilen Geschrieben 22. Mai 2014 (bearbeitet) @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 22. Mai 2014 von daabm Zitieren Link zu diesem Kommentar
rybog 0 Geschrieben 23. Mai 2014 Autor Melden Teilen Geschrieben 23. Mai 2014 (bearbeitet) 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 23. Mai 2014 von rybog Zitieren Link zu diesem Kommentar
daabm 1.354 Geschrieben 23. Mai 2014 Melden Teilen Geschrieben 23. Mai 2014 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"...) Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.