Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @ECHO OFF
- REM // =============================
- REM || Muxeo de subtítulos por lotes
- REM || para MKVmerge
- REM || v0.4-20150511 por drudge
- REM || traducido por paconaranjo
- REM \\ =============================
- REM @@ Este script por lotes analizará el directorio proporcionado
- REM @@ (o la carpeta actual) en busca de archivos de video e
- REM @@ intentará hacerlos coincidir con los archivos de los subtítulos,
- REM @@ para combinarlos utilizando la línea de comandos de MKVmerge.
- REM // ---- ---- ---- ----
- REM || CONFIGURACIÓN DE USUARIO
- REM // Ruta completa a mkvmerge.exe.
- SET "muxpath=C:\Program Files\MKVToolNix\mkvmerge.exe"
- REM \\ -- -- -- -- --
- REM // Ruta completa al programa unrar, asegúrate de incluir las comillas.
- SET "rarpath=C:\Program Files\7-Zip\7z.exe"
- SET "rarcmd=e"
- REM \\ -- -- -- -- --
- REM // Ruta de salida (con barra oblicua),
- REM ++ deja en blanco para el directorio de trabajo.
- SET "outputdir="
- REM @@ Predeterminado: SET "outputdir=".
- REM \\ -- -- -- -- --
- REM // Prepara el texto para el nombre del archivo de salida.
- REM ++ OBLIGATORIO si se deja en blanco el outputdir.
- SET "fileprefix=subtitulado-"
- REM @@ En blanco: SET "fileprefix="
- REM \\ -- -- -- -- --
- REM || FINAL DE LA CONFIGURACIÓN DE USUARIO
- REM \\ ---- ---- ---- ----
- REM -- La edición debajo de esta línea debe hacerse con precisión.
- REM ===========================================================================
- REM @@ Simples contadores.
- SET /A "mc=0"
- SET /A "me=0"
- REM @@ Ruta de trabajo predeterminada.
- SET "wp=."
- REM @@ Ruta de trabajo opcional a través de un argumento.
- IF EXIST "%~1" SET "wp=%~1"
- REM @@ ¡En sus marcas, listos, fuera!
- CLS
- ECHO ===========================================================================
- REM @@ Intentando usar la configuración personalizada para la ruta de salida.
- IF EXIST "%outputdir%" (
- REM @@ El usuario ha proporcionado la ruta de salida.
- ECHO == Configuración del usuario -- Output en: [%outputdir%]
- ) ELSE (
- REM @@ No hay configuración personalizada, comprueba el prefijo.
- IF [%fileprefix%]==[] (
- ECHO @@ ERROR: el ajuste vacío de [fileprefix] requiere [outputdir].
- SET /A me+=1
- GOTO:done
- )
- REM @@ Usando la ruta de trabajo para la salida.
- SET "outputdir=%wp%\"
- )
- FOR %%H IN ("%wp%") DO (
- REM @@ Porque "." no nos dice dónde estamos.
- ECHO == Escaneando [%%~dpfH\] archivos de video...
- )
- :getfiles
- FOR %%I IN ("%wp%\*.avi",
- REM "%wp%\*.extensiónDeVideoPersonalizada",
- "%wp%\*.mkv",
- "%wp%\*.mp4") DO (
- REM @@ Encontré un archivo de video, ahora comprobando los subtítulos.
- CALL:getsubs "%%~I"
- )
- GOTO:done
- :getsubs
- FOR %%J IN ("%wp%\%~n1.idx",
- REM "%wp%\%~n1.extensiónDeSubtítuloPersonalizado",
- "%wp%\%~n1.srt") DO (
- REM @@ Comprobando si hay archivos de subtítulos emparejados. USF/XML puede
- REM @@ requerir esta comprobación también.
- IF %%~xJ==.idx IF EXIST "%wp%\%%~nJ.idx" IF NOT EXIST "%wp%\%%~nJ.sub" (
- IF EXIST "%wp%\%%~nJ.rar" (
- ECHO -- [%%~nJ.sub] -- Encontré un posible .rar
- ECHO | SET /p extdone=">> "
- "%rarpath%" "%rarcmd%" "%%~dpJ%%~nJ.rar" | FIND "Extracting"
- ) ELSE (
- ECHO @@ ERROR: [%%~nJ.idx] -- Falta archivo .sub
- SET /A me+=1
- GOTO:eof
- )
- )
- REM @@ Subtítulo encontrado, es hora de ponerlo todo junto.
- IF EXIST "%wp%\%%~nJ%%~xJ" CALL:muxit "%%~f1" "%%~xJ"
- )
- GOTO:eof
- :muxit
- REM @@ Asegurándose de que el archivo de destino no exista previamente.
- IF EXIST "%outputdir%%fileprefix%%~n1%~x1" (
- ECHO @@ ERROR: [%~n1%~x1] -- Archivo de salida existente
- SET /A me+=1
- GOTO:eof
- )
- REM @@ ¡Lo logramos!
- SET /A mc+=1
- REM @@ Ahora dejemos que mkvmerge haga su magia.
- ECHO | SET /p muxdone="++ Muxing: (%mc%) [%~n1%~x1]"
- "%muxpath%" -q -o "%outputdir%%fileprefix%%~n1%~x1" "%~1" "%wp%\%~n1%~2"
- ECHO ..complete
- REM @@ ¡Exitoso!
- GOTO:eof
- :done
- ECHO == Procesamiento finalizado: %mc% completado / %me% errores
- ECHO ===========================================================================
- REM @@ Se acabó el juego, amigo.
- pause
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement