Advertisement
paconaranjo

Muxeo de subtítulos por lotes.bat

Apr 9th, 2020
451
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.01 KB | None | 0 0
  1. @ECHO OFF
  2. REM // =============================
  3. REM || Muxeo de subtítulos por lotes
  4. REM || para MKVmerge
  5. REM || v0.4-20150511 por drudge
  6. REM || traducido por paconaranjo
  7. REM \\ =============================
  8. REM @@ Este script por lotes analizará el directorio proporcionado
  9. REM @@ (o la carpeta actual) en busca de archivos de video e
  10. REM @@ intentará hacerlos coincidir con los archivos de los subtítulos,
  11. REM @@ para combinarlos utilizando la línea de comandos de MKVmerge.
  12. REM // ---- ---- ---- ----
  13. REM || CONFIGURACIÓN DE USUARIO
  14. REM // Ruta completa a mkvmerge.exe.
  15. SET "muxpath=C:\Program Files\MKVToolNix\mkvmerge.exe"
  16. REM \\ -- -- -- -- --
  17. REM // Ruta completa al programa unrar, asegúrate de incluir las comillas.
  18. SET "rarpath=C:\Program Files\7-Zip\7z.exe"
  19. SET "rarcmd=e"
  20. REM \\ -- -- -- -- --
  21. REM // Ruta de salida (con barra oblicua),
  22. REM ++ deja en blanco para el directorio de trabajo.
  23. SET "outputdir="
  24. REM @@ Predeterminado: SET "outputdir=".
  25. REM \\ -- -- -- -- --
  26. REM // Prepara el texto para el nombre del archivo de salida.
  27. REM ++ OBLIGATORIO si se deja en blanco el outputdir.
  28. SET "fileprefix=subtitulado-"
  29. REM @@ En blanco: SET "fileprefix="
  30. REM \\ -- -- -- -- --
  31. REM || FINAL DE LA CONFIGURACIÓN DE USUARIO
  32. REM \\ ---- ---- ---- ----
  33. REM -- La edición debajo de esta línea debe hacerse con precisión.
  34. REM ===========================================================================
  35.  
  36. REM @@ Simples contadores.
  37. SET /A "mc=0"
  38. SET /A "me=0"
  39.  
  40. REM @@ Ruta de trabajo predeterminada.
  41. SET "wp=."
  42.  
  43. REM @@ Ruta de trabajo opcional a través de un argumento.
  44. IF EXIST "%~1" SET "wp=%~1"
  45.  
  46. REM @@ ¡En sus marcas, listos, fuera!
  47. CLS
  48. ECHO ===========================================================================
  49.  
  50. REM @@ Intentando usar la configuración personalizada para la ruta de salida.
  51. IF EXIST "%outputdir%" (
  52. REM @@ El usuario ha proporcionado la ruta de salida.
  53. ECHO == Configuración del usuario -- Output en: [%outputdir%]
  54. ) ELSE (
  55. REM @@ No hay configuración personalizada, comprueba el prefijo.
  56. IF [%fileprefix%]==[] (
  57. ECHO @@ ERROR: el ajuste vacío de [fileprefix] requiere [outputdir].
  58. SET /A me+=1
  59. GOTO:done
  60. )
  61. REM @@ Usando la ruta de trabajo para la salida.
  62. SET "outputdir=%wp%\"
  63. )
  64. FOR %%H IN ("%wp%") DO (
  65. REM @@ Porque "." no nos dice dónde estamos.
  66. ECHO == Escaneando [%%~dpfH\] archivos de video...
  67. )
  68.  
  69. :getfiles
  70. FOR %%I IN ("%wp%\*.avi",
  71. REM "%wp%\*.extensiónDeVideoPersonalizada",
  72. "%wp%\*.mkv",
  73. "%wp%\*.mp4") DO (
  74. REM @@ Encontré un archivo de video, ahora comprobando los subtítulos.
  75. CALL:getsubs "%%~I"
  76. )
  77. GOTO:done
  78.  
  79. :getsubs
  80. FOR %%J IN ("%wp%\%~n1.idx",
  81. REM "%wp%\%~n1.extensiónDeSubtítuloPersonalizado",
  82. "%wp%\%~n1.srt") DO (
  83. REM @@ Comprobando si hay archivos de subtítulos emparejados. USF/XML puede
  84. REM @@ requerir esta comprobación también.
  85. IF %%~xJ==.idx IF EXIST "%wp%\%%~nJ.idx" IF NOT EXIST "%wp%\%%~nJ.sub" (
  86. IF EXIST "%wp%\%%~nJ.rar" (
  87. ECHO -- [%%~nJ.sub] -- Encontré un posible .rar
  88. ECHO | SET /p extdone=">> "
  89. "%rarpath%" "%rarcmd%" "%%~dpJ%%~nJ.rar" | FIND "Extracting"
  90. ) ELSE (
  91. ECHO @@ ERROR: [%%~nJ.idx] -- Falta archivo .sub
  92. SET /A me+=1
  93. GOTO:eof
  94. )
  95. )
  96. REM @@ Subtítulo encontrado, es hora de ponerlo todo junto.
  97. IF EXIST "%wp%\%%~nJ%%~xJ" CALL:muxit "%%~f1" "%%~xJ"
  98. )
  99. GOTO:eof
  100.  
  101. :muxit
  102. REM @@ Asegurándose de que el archivo de destino no exista previamente.
  103. IF EXIST "%outputdir%%fileprefix%%~n1%~x1" (
  104. ECHO @@ ERROR: [%~n1%~x1] -- Archivo de salida existente
  105. SET /A me+=1
  106. GOTO:eof
  107. )
  108.  
  109. REM @@ ¡Lo logramos!
  110. SET /A mc+=1
  111. REM @@ Ahora dejemos que mkvmerge haga su magia.
  112. ECHO | SET /p muxdone="++ Muxing: (%mc%) [%~n1%~x1]"
  113. "%muxpath%" -q -o "%outputdir%%fileprefix%%~n1%~x1" "%~1" "%wp%\%~n1%~2"
  114. ECHO ..complete
  115. REM @@ ¡Exitoso!
  116. GOTO:eof
  117.  
  118. :done
  119. ECHO == Procesamiento finalizado: %mc% completado / %me% errores
  120. ECHO ===========================================================================
  121. REM @@ Se acabó el juego, amigo.
  122. pause
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement