Nie zmieniają się wartości skryptów wsadowych?

Mam skrypt wsadowy, ale z jakiegoś powodu, gdy wartość jest ustawiona w mojej pętli foor, utrzymuje się i nie aktualizuje. Moje wartości: „totalTime” i „totalHours” w mojej pętli for są zawsze taką samą wartością, jak przy pierwszym wywołaniu konwertowania. Sprawdziłem, że moja funkcja „converttime” dokładnie pobiera właściwe wartości, ale nie jestem pewien, jak zmienić wartości w mojej pętli for.

Mój kod wygląda tak:

@echo off

set duration=01:25:45

call :converttime %duration%

set /A duration=%totalHours%+%totalMins%

FOR /F "tokens=2 delims=#" %%i IN (subtitle.txt) DO (
    call :converttime %%i
    set /A totalTime=%totalMins%+%totalhours%
    echo %totalTime%
)
endlocal
goto :eof

:converttime
set mytime=%1
set hour=%mytime:~0,2%
set minute=%mytime:~3,2%
set seconds=%mytime:~6,7%

if NOT "%minute%"=="" (
    SET /A totalMins=%minute%*60000
)

if NOT "%hour%"=="~0,2" (
    set /A totalhours=%hour%*3600000    
)

Dane wyjściowe to:

4500000 4500000 4500000 4500000 4500000 4500000

Kiedy powinno być coś takiego:

2500000 3520000 1450000

Jakieś pomysły??

questionAnswers(1)

yourAnswerToTheQuestion