MKV Sub и Глава удаления

1047
Kevin Mieszala

Я пытаюсь удалить субтитры и главы из всех моих файлов MKV. Я пытался найти способ добавить приведенный ниже командный файл, чтобы также искать главы и удалять их, но не смог выяснить, как редактировать строку поиска. Любая помощь очень ценится.

@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. ) ) ) 

Если я переписать пакет, как это. Он делает то, что я хочу, но неаккуратно просматривая файлы дважды.

@echo off cls set rootfolder="D:\uTorrent\Completed Downloads" 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 --no-chapters "%%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" ) echo. ) ) ) set rootfolder="D:\uTorrent\Completed Downloads" echo Enumerating all MKVs under %rootfolder% echo. for /r %rootfolder% %%a in (*.mkv) do ( for /f %%b in ('mkvmerge -i "%%a" ^| find /c /i "chapters" ') do ( if [%%b]==[0] ( echo "%%a" has no chapters ) else ( echo. echo "%%a" has chapters mkvmerge -q -o "%%~dpna (No Chapters)%%~xa" -S --no-chapters "%%a" if errorlevel 1 ( echo Warnings/errors generated during remuxing, original file not deleted ) else ( del /f "%%a" echo Successfully remuxed to "%%~dpna (No Chapters)%%~xa" ) echo. ) ) ) pause 
1
Разве команде find не нужен путь для поиска? Протестировал и не работает с активным путем Joey 10 лет назад 0
Это довольно непрактично, но вы можете перекодировать их без глав или субтитров, используя [Handbrake] (http://handbrake.fr/) Jonah 10 лет назад 0
Слияние MKV удалит сабвуферы и главы, но я хочу не делать их 1 на 1 вручную. Этот пакетный файл отлично работает для поиска, если они являются подпрограммами, и удаляет их, но не главы. Я также могу легко отредактировать команду для удаления глав, но если в файле mkv есть главы, но нет подпрограмм с этой текущей настройкой, главы не будут найдены. Я отредактировал свой OP с помощью командного файла, который я сейчас использую. Может быть, это прольет больше света на эту тему. Kevin Mieszala 10 лет назад 0

1 ответ на вопрос

0
SadBunny

Не совсем уверен, что именно вы пытаетесь сделать, но я думаю, что это может вам помочь. Вы можете использовать findstr для поиска нескольких строк (или регулярных выражений!) И многих других интересных вещей. Я написал и протестировал пример для вас:

c:\tmp\findtest>dir /b x.txt y.txt z.txt  c:\tmp\findtest>type x.txt y.txt z.txt  x.txt: "this is x"  y.txt: "this is y"  z.txt: "this is z"  c:\tmp\findtest>findstr /i /r "x y" * x.txt:"this is x" y.txt:"this is y" 

/ edit: и при необходимости добавить | find -c -v "" к этому, если вас заботит только количество строк в выводе findstr.