Как обойти ошибку при определении продолжительности файла менее 10 секунд?
Есть cmd код которым определяю с помощью ffmpeg продолжительность 5-ти штук видео фалов формата mp4.
Код: @echo OFF SETLOCAL ENABLEDELAYEDEXPANSION for /L %%i in (1,1,5) do ( for /F "tokens=2" %%a in ('ffmpeg -i vidov_ska4ali_%%i.mp4 2^>^&1 ^| find "Duration"') do SET z=%%a set Z1=!Z:~0,2! set Z2=!Z:~3,2! set Z3=!Z:~6,2! if !Z1! LSS 10 (set Z1=0!Z1!) if !Z2! LSS 10 (set Z2=0!Z2!) if !Z3! LSS 10 (set Z3=0!Z3!) set /A vidov_ska4ali_%%i=!Z1! * 3600 + !Z2! * 60 + !Z3! ) echo file "vidov_ska4ali_1.mp4" have 12 sec but displays !vidov_ska4ali_1! seconds echo file "vidov_ska4ali_2.mp4" have 21 sec but displays !vidov_ska4ali_2! seconds echo file "vidov_ska4ali_3.mp4" have 9 sec but displays !vidov_ska4ali_3! seconds echo file "vidov_ska4ali_4.mp4" have 13 sec but displays !vidov_ska4ali_4! seconds echo file "vidov_ska4ali_5.mp4" have 14 sec but displays !vidov_ska4ali_5! seconds Но тут есть ошибка в определении продолжительности файла vidov_ska4ali_3.mp4. Она возникает т.к. файл имеет длину 9 сек, то есть число состоящее из одной цифры. И соответственно в логе вот такое: Неправильное число. Числовые константы должны быть десятичными (17) шестнадцатеричными (0x11),или восьмеричными (021). file "vidov_ska4ali_1.mp4" have 12 sec but displays 12 seconds file "vidov_ska4ali_2.mp4" have 21 sec but displays 21 seconds file "vidov_ska4ali_3.mp4" have 9 sec but displays seconds file "vidov_ska4ali_4.mp4" have 13 sec but displays 13 seconds file "vidov_ska4ali_5.mp4" have 14 sec but displays 14 seconds |
Так заработало:
@echo OFF SETLOCAL ENABLEDELAYEDEXPANSION for /L %%i in (1,1,5) do ( for /F "tokens=2" %%a in ('ffmpeg -i vidov_ska4ali_%%i.mp4 2^>^&1 ^| find "Duration"') do SET z=%%a set /A Z1=1!Z:~0,2!-100 set /A Z2=1!Z:~3,2!-100 set /A Z3=1!Z:~6,2!-100 set /A vidov_ska4ali_%%i=!Z1! * 3600 + !Z2! * 60 + !Z3! ) echo file "vidov_ska4ali_1.mp4" have 12 sec but displays !vidov_ska4ali_1! seconds echo file "vidov_ska4ali_2.mp4" have 21 sec but displays !vidov_ska4ali_2! seconds echo file "vidov_ska4ali_3.mp4" have 9 sec but displays !vidov_ska4ali_3! seconds echo file "vidov_ska4ali_4.mp4" have 13 sec but displays !vidov_ska4ali_4! seconds echo file "vidov_ska4ali_5.mp4" have 14 sec but displays !vidov_ska4ali_5! seconds |
Часовой пояс GMT +3, время: 03:56. |