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
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 40173
Url: https://administrator.de/contentid/40173
Ausgedruckt am: 20.11.2024 um 14:11 Uhr
8 Kommentare
Neuester Kommentar
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 ----------------------------------