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-ID: 182917

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

Ausgedruckt am: 22.11.2024 um 14:11 Uhr

mak-xxl
mak-xxl 01.04.2012 um 12:28:35 Uhr
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
Skyemugen
Skyemugen 01.04.2012 um 12:33:44 Uhr
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.
MrNetman
MrNetman 01.04.2012 um 14:02:22 Uhr
Goto Top
da gab es doch noch den Trick mit
ping localhost -n 1
... je 1Sekunde und mit Parametern steuerbar

Gruß
Netman