Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden.
Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
cmd-Frage: timeout Rückgabewert?
- Ersteller Adolar
- Erstellt am
Evtl mit choice das Verhalten einigermaßen faken... aber glaube, dass es nicht ganz so schön ist
https://stackoverflow.com/questions/47519101/timeout-exe-alternative-for-legacy-windows-oses
Also vielleicht findet man irgendwo auch eine Alternative zu timeout, die das direkt kann. Ich habe aber noch keine gefunden.
https://stackoverflow.com/questions/47519101/timeout-exe-alternative-for-legacy-windows-oses
Also vielleicht findet man irgendwo auch eine Alternative zu timeout, die das direkt kann. Ich habe aber noch keine gefunden.
E
ella_one
Gast
Man könnte die Zeiten vor dem Aufruf des Hilfsprogramms TIMEOUT und nach Beendigung desselben ermitteln.
Unten ein Beispiel, wie Datum und Uhrzeit ausgelesen und ausgegeben werden können:
ECHO OFF
Viel Erfolg
Unten ein Beispiel, wie Datum und Uhrzeit ausgelesen und ausgegeben werden können:
ECHO OFF
Code:
ECHO OFF
CLS
TITLE Datum und Uhrzeit auslesen
ECHO.
ECHO Jahr : %DATE:~0,4%
ECHO Monat : %DATE:~5,2%
ECHO Tag : %DATE:~8,2%
ECHO Stunden : %TIME:~-11,2%
ECHO Minuten : %TIME:~-8,2%
ECHO Sekunden: %TIME:~-5,2%
ECHO.
SET Datum=%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%
ECHO Ausgelesenes Datum (YYYYMMDD) : %Datum%
SET Uhrzeit=%TIME:~-11,2%:%TIME:~-8,2%:%TIME:~-5,2%
ECHO Ausgelesene Uhrzeit (HH:nn:ss): %Uhrzeit%
TIMEOUT /T 5
Viel Erfolg
Hätte dann zwar eine "Unschärfe", aber wir wissen ja nicht, wie wichtig es ist, es "exakt" zu wissen. Wenn ich z.B. 0,1s vor Ende drücke, weiß ich es als User ja selbst auch nicht.
Und wenn die Timeout-Dauer-z.B. unter 1 Minute ist z.B. reicht es auch, nur die Sekunden und Millisekunden zu betrachten.
Und wenn die Timeout-Dauer-z.B. unter 1 Minute ist z.B. reicht es auch, nur die Sekunden und Millisekunden zu betrachten.
- Registriert
- Sep. 2014
- Beiträge
- 385
Das liefert leider auch keinen unterschiedlichen Errorlevel zwischen abgelaufen und unterbrochen. Schade. Aber danke für den Tipp.tollertyp schrieb:Evtl mit choice das Verhalten einigermaßen faken... aber glaube, dass es nicht ganz so schön ist
https://stackoverflow.com/questions/47519101/timeout-exe-alternative-for-legacy-windows-oses
Also vielleicht findet man irgendwo auch eine Alternative zu timeout, die das direkt kann. Ich habe aber noch keine gefunden.
Also unabhängig davon, dass ich die Variante nicht elegant finde, aber sicher?
Weil grundsätzlich sollte es das schon, wenn man es "richtig" macht.
https://ss64.com/nt/choice.html
Also wenn du halt den Default-Wert drückst, dann hast du den identischen ERROR_LEVEL, ja. Aber sonst solltest du einen höheren ERROR_LEVEL haben.
Wie sah denn deine Abfrage aus?
Weil grundsätzlich sollte es das schon, wenn man es "richtig" macht.
https://ss64.com/nt/choice.html
Also wenn du halt den Default-Wert drückst, dann hast du den identischen ERROR_LEVEL, ja. Aber sonst solltest du einen höheren ERROR_LEVEL haben.
Wie sah denn deine Abfrage aus?
- Registriert
- Sep. 2014
- Beiträge
- 385
So ungefähr mache ich das jetzt, nur nicht so kompliziert. Das Kommano time /T liefert auch die aktuelle Uhrzeit. Aber um Herauszufinden, wie es zum Abschluss kam, muss ich Anfangs- und Endzeit vergleichen. Das ist mir dafür zu viel Aufwand. Hätte ja sein können, dass es einfacher geht.ella_one schrieb:Man könnte die Zeiten vor dem Aufruf des Hilfsprogramms TIMEOUT und nach Beendigung desselben ermitteln.
Unten ein Beispiel, wie Datum und Uhrzeit ausgelesen und ausgegeben werden können:
ECHO OFF
Code:ECHO OFF CLS TITLE Datum und Uhrzeit auslesen ECHO. ECHO Jahr : %DATE:~0,4% ECHO Monat : %DATE:~5,2% ECHO Tag : %DATE:~8,2% ECHO Stunden : %TIME:~-11,2% ECHO Minuten : %TIME:~-8,2% ECHO Sekunden: %TIME:~-5,2% ECHO. SET Datum=%DATE:~0,4%%DATE:~5,2%%DATE:~8,2% ECHO Ausgelesenes Datum (YYYYMMDD) : %Datum% SET Uhrzeit=%TIME:~-11,2%:%TIME:~-8,2%:%TIME:~-5,2% ECHO Ausgelesene Uhrzeit (HH:nn:ss): %Uhrzeit% TIMEOUT /T 5
Viel Erfolg
Danke für eure Hilfe und die vielen Ideen!
Ergänzung ()
Im Anwendungsfall soll unterschieden werden, ob irgendeine beliebige Taste zum Abbruch gedückt wurde, oder ob der timer abgelaufen ist. Dies ist so nicht sicher möglich.tollertyp schrieb:Also unabhängig davon, dass ich die Variante nicht elegant finde, aber sicher?
Weil grundsätzlich sollte es das schon, wenn man es "richtig" macht.
https://ss64.com/nt/choice.html
Also wenn du halt den Default-Wert drückst, dann hast du den identischen ERROR_LEVEL, ja. Aber sonst solltest du einen höheren ERROR_LEVEL haben.
Wie sah denn deine Abfrage aus?
Zuletzt bearbeitet:
Ich meinte wie du den ERRORLEVEL konkret geprüft hast.
Weil choice sollte durchaus verschiedene ERRORLEVEL liefern, wenn du nicht zufällig immer den Standard-Wert gedrückt hast.
Im ersten Fall habe ich eine Taste geedrückt, die 1. Im zweiten Fall habe ich die Taste 0 gedrückt. Drücke ich keine Taste, ist das Verhalten (sowohl optisch als auch vom Errorlevel her) identisch.
1, weil 0 als Standardwert das erste Zeichen in der Liste der Zeichen ist.
Statt 0 als Default (/D 0) kannst du auch mit anderen Werten rumspielen:
Aber da musst du aufpassen, dass die Dateicodierung dann zur Kommandozeile passt.
Z.B.:
Weil choice sollte durchaus verschiedene ERRORLEVEL liefern, wenn du nicht zufällig immer den Standard-Wert gedrückt hast.
Im ersten Fall habe ich eine Taste geedrückt, die 1. Im zweiten Fall habe ich die Taste 0 gedrückt. Drücke ich keine Taste, ist das Verhalten (sowohl optisch als auch vom Errorlevel her) identisch.
1, weil 0 als Standardwert das erste Zeichen in der Liste der Zeichen ist.
Code:
@echo off
echo Bitte Taste druecken
choice /C 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ /D 0 /T 10 > nul
if %ERRORLEVEL% neq 1 echo Taste gedrueckt
if %ERRORLEVEL% equ 1 echo Zeit abgelaufen
Statt 0 als Default (/D 0) kannst du auch mit anderen Werten rumspielen:
Aber da musst du aufpassen, dass die Dateicodierung dann zur Kommandozeile passt.
Z.B.:
Code:
choice /C þ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ /D þ /T 10 > nul
- Registriert
- Sep. 2014
- Beiträge
- 385
Verstehe. Aber es gibt noch immer den Fall, dass zufällig die Default-Taste gedrückt wurde, und dann sieht es wieder aus wie abgelaufen.
Übrigens funktioniert bei Windows 10 das "-" nicht als gültiges Zeichen in der choice-Kette.
Schade. timeout wäre schon das richtige Kommando. Aber was nicht ist, ist nicht. Nicht schlimm! Ich baue mir was, wenn ich mal Lust habe.
Übrigens funktioniert bei Windows 10 das "-" nicht als gültiges Zeichen in der choice-Kette.
Schade. timeout wäre schon das richtige Kommando. Aber was nicht ist, ist nicht. Nicht schlimm! Ich baue mir was, wenn ich mal Lust habe.
Ähnliche Themen
- Antworten
- 7
- Aufrufe
- 1.609
- Antworten
- 12
- Aufrufe
- 5.383
- Antworten
- 4
- Aufrufe
- 951