Batch: for Schleife, Zeit nicht aktuell

A

Atlas553

Hallo zusammen.


Ich versuche gerade einen Batch zu schreiben, der mir die Zeit misst, die ein Programm benötigt um einen Import fertig zu stellen. Dabei bin ich auf das Phänomen gestoßen, dass innerhalb der for Schleife die Zeit, die ich mir ausgeben lasse immer gleich ist. Die Start und Endzeit allerdings zeigen die korrekte Uhrzeit an.

Hier unten mal eine vereinfachte Version meines Batches, an dem Deutlich wird was mein Problem ist und vielleicht könnt ihr mir auch schon sagen wo ich den Fehler gemacht habe :)

Wäre super wenn jem. von euch eine Idee hätte steh im Moment ziemlich auf dem Schlauch, Google und co. konnte mich leider nicht weiter bringen.

@echo off

echo Startzeit .: %date:~0% - %time:~0,8% Uhr
ping localhost -n 2 >NUL
set /a test=1
for /L %%i in (1,1,5) do (
echo Zeit .: %date:~0% - %time:~0,8% Uhr
set /a test=test+1
ping localhost -n 2 >NUL
echo %%i
)
echo Endzeit .: %date:~0% - %time:~0,8% Uhr


Ich danke euch schon mal für die Antworten

Gruß Atlas
 
Hi.

Das liegt daran, das Variablen in Batch nur ein einziges Mal expandiert werden. D.h. der Batchprozessor liest deine Schleife, expandiert %date% und %time% und führt dann erst die Schleife aus.

Du müßtest die verzögerte Variablen-Expansion verwenden. Siehe auch "help setlocal".
Code:
setlocal EnableDelayedExpansion

for /L ... do (
  echo !date:~0!
  ..
)
Gruß
 
Moin,
sehr interessant, wieder was dazugelernt und auch von mir ein Danke dafür ;)
Gruß Jonny
 
Zurück