Выполнить ряд команд для каждого файла в каталоге.

Выполнить ряд команд для каждого файла в каталоге.

Чтобы добавить субтитры к одному файлу, я использую следующую команду:

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.

Связанный контент