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??