Reine Zeitmessung unter Windows XP
Ich möchte in einer Batchdatei die Zeitmessen, die ein Befehl oder Aufruf kostet.
Ich möchte in einer Batchdatei die Zeitmessen, die ein Befehl oder Aufruf kostet. Wollte dazu %TIME% nutzen. Aber so einfach scheint es nicht zu sein. Könnt Ihr mir diesbezüglich helfen? Meine Batch sieht so aus:
@set stime = %TIME%
@dir
@set etime = %TIME%
@set ergebnis = %etime% - %stime%
@echo %ergebnis%
@pause
Besten Dank im Voraus.
Enrico
@set stime = %TIME%
@dir
@set etime = %TIME%
@set ergebnis = %etime% - %stime%
@echo %ergebnis%
@pause
Besten Dank im Voraus.
Enrico
Please also mark the comments that contributed to the solution of the article
Content-Key: 40173
Url: https://administrator.de/contentid/40173
Printed on: April 23, 2024 at 10:04 o'clock
8 Comments
Latest comment
Ich glaube, dein Problem hier ist, das du nicht so einfach zwei Zeiten voneinander subtrahieren kannst. Meiner Meinung nach ist das mit reinen Konsolenbefehlen unter Dos oder Windows nicht moeglich.
Alles was dir da bleibt, ist die Start und die Endzeiten in eine Textdatei zu schreiben und dann mit einem 2. Programm auszuwerten.
Alles was dir da bleibt, ist die Start und die Endzeiten in eine Textdatei zu schreiben und dann mit einem 2. Programm auszuwerten.
Stimmt nicht ganz ! das geht @Garfieldt
MFG Metzger
kurze Version Milisekunden
@echo off
echo %time% >z.txt
for /F "eol=; tokens=1,2,3,4,5* delims=: " %%i in (z.txt) do echo %%i%%j%%k%%l >z.txt
for /F "eol=; tokens=1,2* delims=, " %%i in (z.txt) do set st= %%i%%j
rem hier kommen deine Befehle rein zum testen kannst du ja pause einfügen ...
echo %time% >z.txt
for /F "eol=; tokens=1,2,3,4,5* delims=: " %%i in (z.txt) do echo %%i%%j%%k%%l >z.txt
for /F "eol=; tokens=1,2* delims=, " %%i in (z.txt) do set et= %%i%%j
del z.txt
set /a dif= (%et% - %st% ) / 100
set /a std= %dif% / 3600
set /a min= (%dif% - ( 3600 * %std% )) / 60
set /a sek= %dif% - (( %dif% / 60 ) * 60 )
set /a msek= (%et% - %st% ) - (((%et% - %st% ) / 100) * 100 )
echo Die Laufzeit betrug %std% Stunden %min% Minuten %sek% Sekunden %msek% Milisekunden
kurze Version Sekunden
@echo off
echo %time% >z.txt
for /F "eol=; tokens=1,2,3,4,5* delims=:;, " %%i in (z.txt) do set st= %%i%%j%%k
rem hier kommen deine Befehle rein zum testen kannst du ja pause einfügen ...
echo %time% >z.txt
for /F "eol=; tokens=1,2,3,4,5* delims=:;, " %%i in (z.txt) do set et= %%i%%j%%k
del z.txt
set /a dif= (%et% - %st%)
set /a std= %dif% / 3600
set /a min= (%dif% - ( 3600 * %std% )) / 60
set /a sek= %dif% - (( %dif% / 60 ) * 60 )
echo Die Laufzeit betrug %std% Stunden %min% Minuten %sek% Sekunden
Lange Version
@echo off
rem --- Erste Zeit nehmen in Datei speichern umwandeln und auf Variable legen ---
echo ----------------------------------
echo %time% >z.txt
for /F "eol=; tokens=1,2,3,4,5* delims=: " %%i in (z.txt) do echo %%i%%j%%k%%l >z.txt
for /F "eol=; tokens=1,2* delims=, " %%i in (z.txt) do set st= %%i%%j
echo %st%
echo ----------------------------------
rem hier kommen deine Befehle rein zum testen kannst du ja pause einfügen ...
rem --- Zweite Zeit nehmen in Datei speichern umwandeln und auf Variable legen ---
echo ----------------------------------
echo %time% >z.txt
for /F "eol=; tokens=1,2,3,4,5* delims=: " %%i in (z.txt) do echo %%i%%j%%k%%l >z.txt
for /F "eol=; tokens=1,2* delims=, " %%i in (z.txt) do set et= %%i%%j
echo %et%
echo ----------------------------------
rem --- Berechnung und Berchnungsdatei löschen ---
echo ----------------------------------
del z.txt
set /a dif= (%et% - %st% ) / 100
set /a std= %dif% / 3600
set /a min= (%dif% - ( 3600 * %std% )) / 60
set /a sek= %dif% - (( %dif% / 60 ) * 60 )
set /a msek= (%et% - %st% ) - (((%et% - %st% ) / 100) * 100 )
echo Die Laufzeit betrug %std% Stunden %min% Minuten %sek% Sekunden %msek% Milisekunden
echo ----------------------------------
MFG Metzger
kurze Version Milisekunden
@echo off
echo %time% >z.txt
for /F "eol=; tokens=1,2,3,4,5* delims=: " %%i in (z.txt) do echo %%i%%j%%k%%l >z.txt
for /F "eol=; tokens=1,2* delims=, " %%i in (z.txt) do set st= %%i%%j
rem hier kommen deine Befehle rein zum testen kannst du ja pause einfügen ...
echo %time% >z.txt
for /F "eol=; tokens=1,2,3,4,5* delims=: " %%i in (z.txt) do echo %%i%%j%%k%%l >z.txt
for /F "eol=; tokens=1,2* delims=, " %%i in (z.txt) do set et= %%i%%j
del z.txt
set /a dif= (%et% - %st% ) / 100
set /a std= %dif% / 3600
set /a min= (%dif% - ( 3600 * %std% )) / 60
set /a sek= %dif% - (( %dif% / 60 ) * 60 )
set /a msek= (%et% - %st% ) - (((%et% - %st% ) / 100) * 100 )
echo Die Laufzeit betrug %std% Stunden %min% Minuten %sek% Sekunden %msek% Milisekunden
kurze Version Sekunden
@echo off
echo %time% >z.txt
for /F "eol=; tokens=1,2,3,4,5* delims=:;, " %%i in (z.txt) do set st= %%i%%j%%k
rem hier kommen deine Befehle rein zum testen kannst du ja pause einfügen ...
echo %time% >z.txt
for /F "eol=; tokens=1,2,3,4,5* delims=:;, " %%i in (z.txt) do set et= %%i%%j%%k
del z.txt
set /a dif= (%et% - %st%)
set /a std= %dif% / 3600
set /a min= (%dif% - ( 3600 * %std% )) / 60
set /a sek= %dif% - (( %dif% / 60 ) * 60 )
echo Die Laufzeit betrug %std% Stunden %min% Minuten %sek% Sekunden
Lange Version
@echo off
rem --- Erste Zeit nehmen in Datei speichern umwandeln und auf Variable legen ---
echo ----------------------------------
echo %time% >z.txt
for /F "eol=; tokens=1,2,3,4,5* delims=: " %%i in (z.txt) do echo %%i%%j%%k%%l >z.txt
for /F "eol=; tokens=1,2* delims=, " %%i in (z.txt) do set st= %%i%%j
echo %st%
echo ----------------------------------
rem hier kommen deine Befehle rein zum testen kannst du ja pause einfügen ...
rem --- Zweite Zeit nehmen in Datei speichern umwandeln und auf Variable legen ---
echo ----------------------------------
echo %time% >z.txt
for /F "eol=; tokens=1,2,3,4,5* delims=: " %%i in (z.txt) do echo %%i%%j%%k%%l >z.txt
for /F "eol=; tokens=1,2* delims=, " %%i in (z.txt) do set et= %%i%%j
echo %et%
echo ----------------------------------
rem --- Berechnung und Berchnungsdatei löschen ---
echo ----------------------------------
del z.txt
set /a dif= (%et% - %st% ) / 100
set /a std= %dif% / 3600
set /a min= (%dif% - ( 3600 * %std% )) / 60
set /a sek= %dif% - (( %dif% / 60 ) * 60 )
set /a msek= (%et% - %st% ) - (((%et% - %st% ) / 100) * 100 )
echo Die Laufzeit betrug %std% Stunden %min% Minuten %sek% Sekunden %msek% Milisekunden
echo ----------------------------------