Сохранить следующее как что - то вроде DelMKVSubs.bat в том же каталоге mkvmerge.exe находится, отредактировать переменную RootFolder в соответствии с вашими требованиями и запустить пакетный файл:
@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.
)
)
)
Пакетный файл должен быть достаточно легким для понимания, но, тем не менее, вот обзор:
Он использует for /r
для рекурсивного поиска %rootfolder%
для всех MKV
Затем он запускает mkvmerge -i
на каждом MKV, чтобы проверить, существует ли дорожка субтитров.
Если MKV содержит дорожки субтитров, он запускает mkvmerge mkvmerge -S
для повторного смешивания файла, пропуская все такие дорожки
Наконец, он проверяет код errorlevel
и, если это (то есть уровень ошибки ) равен 0, что указывает на успех без предупреждений / ошибок, он удаляет исходный файл
Для получения дополнительной информации см. Документацию mkvmerge, а также for /?
, if /?
и т.д. в командной строке.