Valores de script em lote não estão mudando?
Eu tenho um script em lotes, mas por qualquer motivo, uma vez que um valor é definido no meu loop foor, ele persiste e não é atualizado. Meus valores: 'totalTime' e 'totalHours' no meu loop for sempre o mesmo valor da primeira vez em que 'converttime foi chamado. Verifiquei que a função 'converttime' está obtendo os valores corretos, mas não sei como obter os valores a serem alterados no loop for.
Meu código é assim:
@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
)
A saída é:
4500000 4500000 4500000 4500000 4500000 4500000
Quando deveria ser algo como:
2500000 3520000 1450000
Alguma ideia??