I'm trying to convert a time value from a text file from hr:min:sec.sec to just seconds. I have a file with event numbers (consecutive order, 1,2,3 etc.) in column 1 of each row and the rest of the row is event data as in my example below. I want to have the user enter two numbers, with which my script grabs the corresponding hr:min:sec of each event and converts into only seconds.
The file format is 4 000-01:04:10.983745 34.56 string1 string_2
(this would be the 4th line, its date/time, a duration in seconds, and two static strings in the next two columns.
I am using a for loop to grab tokens 1, 2, and 3 using :
as the delims and then just trimming the strings for the purpose of performing arithmetic.
So %%A
should be 4 000-01
, %%B
should be 04
, and %%C
should be everything else on the line. Now I just read batch doesn't support decmials, so I can do without them if needed. But this isn't returning anything:
setlocal enabledelayedexpansion enableextension
REM auto-setting event values for testing
set begin=3
set end=4
for /f "tokens=1,2,3 delims=:" %%A in ('findstr /b /c:"!begin![^0-9]" event.txt') do (
set "hr=%%A"
set /A "min=%%B"
set "sec=%%C"
set /A "hr=!hr:~-2!"
set /A "sec=!sec:~0,2!"
set /A "total=(hr*3600)+(min*60)+sec"
echo !total!>>time.txt
)
exit /B