
Чтобы добавить субтитры к одному файлу, я использую следующую команду:
mkvmerge.exe -o g:\movie01.mkv --default-track 0 --language 0:pl movie01.mkv movie01.srt
Где:
movie01.mkv
это имя видеофайла
movie01.srt
имя файла субтитров (всегда совпадает с именем видеофайла)
g:\movie01.mkv
это выходной файл
Как выполнить указанную выше команду для каждого файла в каталоге?
решение1
Эта команда будет проходить по всем файлам mkv и запускать команду для каждого из них (я предлагаю поместить ее в .bat
файл). Команда должна быть запущена в каталоге, содержащем ваши файлы mkv.
for %%A in (*.mkv) do if /i "%%~XA"==".mkv" (
c:\<path to mkvmerge>\mkvmerge.exe -o g:\"%%A" --default-track 0 --language 0:pl "%%A" "%%~nA.srt"
)
%%A
совпадает с точным именем файла.
%%~nA
эквивалентно имени файла без указания типа файла.
решение2
Если все файлы имеют расширение .mkv, как насчет этого:
for /r %%video in (*.mkv) do mkvmerge.exe -o %%video --default-track 0 --language 0:pl %%video.srt
%%video
это переменная, которая идентифицирует каждый файл в текущей папке с указанным расширением. После того, как do
я запускаю команду для каждого файла, я использую ту же переменную для вызова файла srt.