Executa uma série de comandos para cada arquivo em um diretório

0

Para adicionar legendas a um único arquivo, uso o seguinte comando:

mkvmerge.exe -o g:\movie01.mkv --default-track 0 --language 0:pl movie01.mkv movie01.srt

Onde:

movie01.mkv é o nome de um arquivo de vídeo

movie01.srt é o nome de um arquivo de legenda (é sempre o mesmo que o arquivo de vídeo)

g:\movie01.mkv é o arquivo de saída

Como executo o comando acima mencionado para cada arquivo em um diretório?

    
por menteith 15.01.2017 / 09:23

2 respostas

0

Este comando irá percorrer todos os arquivos mkv e executar o comando para cada um deles (sugiro colocá-lo em um arquivo .bat ). O comando deve ser executado no diretório que contém seus arquivos 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 é igual ao nome de arquivo exato.

%%~nA é igual ao nome do arquivo sem tipo de arquivo.

    
por 15.01.2017 / 09:33
0

Contanto que todos os arquivos tenham a extensão .mkv, que tal isso:

for /r %%video in (*.mkv) do mkvmerge.exe -o %%video --default-track 0 --language 0:pl %%video.srt

%%video é a variável que identifica cada arquivo na pasta atual com a extensão especificada. Depois de do , eu corro o comando em cada arquivo e uso a mesma variável para chamar o arquivo srt.

    
por 15.01.2017 / 09:44