tobiasente
Goto Top

For- Schleife, Zeitausgabe in einem Intervall

Hallo zusammen,

Ich möchte mit der Hilfe der folgenden Zeilen die aktuelle Zeit ausgeben lassen.

@echo off

for /l %%a in (1, 1, 10) do echo %time% && timeout /t 1 > nul

pause
exit

Vom Prinzip her funktioniert es auch, jedoch wird die Zeit nicht aktualisiert.
Was heißt, das von 1 bis 10 immer die gleiche Zeit ausgeben wird.

Frage: Woran liegt das genau und wie müsste es richtig aussehen?

Vielen Dank für eure Hilfe und eure Zeit.

Content-Key: 182917

Url: https://administrator.de/contentid/182917

Printed on: April 19, 2024 at 21:04 o'clock

Member: mak-xxl
mak-xxl Apr 01, 2012 at 10:28:35 (UTC)
Goto Top
Moin tobiasente,

lösen kann man das so:
@echo off & setlocal enabledelayedexpansion

for /l %%a in (1, 1, 10) do echo !time! && timeout /t 1 > nul

pause
exit

Es liegt an der Variable %time% - die wird in der Schleife nicht aktualisiert - mit den zusätzlichen Angaben und der Schreibweise '!time!' geht das.

ABER:

Die Schleife mit 10 Durchläufen ist so schnell abgearbeitet, das kaum Zeit vergeht - probier es mit 100 Durchläufen, dann wird das Ergebnis sichtbar.

UND:

Was immer es bewirken soll ...

Freundliche Grüße von der Insel - Mario
Member: Skyemugen
Skyemugen Apr 01, 2012 at 10:33:44 (UTC)
Goto Top
Aloha,

also den Sinn dahinter ...

Es gibt ja Leute, denen reichts es, wenn sie wissen, wann 10 Sekunden um sind ... auch per timeout /t 10

greetz André

P.S.: ich würde ja !time:~0,-3! bevorzugen, wer will schon Millisekunden, die irritieren doch nur und bleiben nicht einmal gleich.
Member: MrNetman
MrNetman Apr 01, 2012 at 12:02:22 (UTC)
Goto Top
da gab es doch noch den Trick mit
ping localhost -n 1
... je 1Sekunde und mit Parametern steuerbar

Gruß
Netman