Salve o seguinte como se fosse algo como DelMKVSubs.bat no mesmo diretório mkvmerge.exe , edite a variável rootfolder conforme seu requisitos e executar o arquivo em lotes:
@echo off
cls
set rootfolder=C:\
echo Enumerating all MKVs under %rootfolder%
echo.
for /r %rootfolder% %%a in (*.mkv) do (
for /f %%b in ('mkvmerge -i "%%a" ^| find /c /i "subtitles"') do (
if [%%b]==[0] (
echo "%%a" has no subtitles
) else (
echo.
echo "%%a" has subtitles
mkvmerge -q -o "%%~dpna (No Subs)%%~xa" -S "%%a"
if errorlevel 1 (
echo Warnings/errors generated during remuxing, original file not deleted
) else (
del /f "%%a"
echo Successfully remuxed to "%%~dpna (No Subs)%%~xa", original file deleted
)
echo.
)
)
)
O arquivo em lote deve ser fácil de entender, mas aqui está uma visão geral:
-
Ele usa
for /r
para pesquisar recursivamente%rootfolder%
para todos os MKVs -
Em seguida, ele executa
mkvmerge -i
em cada MKV para verificar se existe uma faixa de legenda -
Se o MKV não contiver faixas de legenda, ele executará
mkvmerge -S
para remodiar o arquivo enquanto ignora todas essas faixas -
Finalmente, ele verifica o código de saída do mkvmerge e se isso (ou seja,
errorlevel
) for 0 indicando sucesso sem avisos / erros, ele exclui o arquivo original
Para mais informações, consulte a documentação do mkvmerge e também for /?
, if /?
etc. no prompt de comando.