Guest User

rename_srt.bat

a guest
Dec 15th, 2024
35
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Batch 1.29 KB | None | 0 0
  1. @echo off
  2. setlocal enabledelayedexpansion
  3.  
  4. :: Iterate through all .srt files in the current directory
  5. for %%f in (*.srt) do (
  6.     set "episode_number="
  7.  
  8.     :: Extract the line containing '[episode N]' and parse the episode number
  9.     for /f "tokens=2 delims=[] " %%a in ('findstr /i /c:"[episode" "%%f"') do (
  10.         set "episode_number=%%a"
  11.     )
  12.  
  13.     :: Check if an episode number was found
  14.     if defined episode_number (
  15.        :: Construct the new base filename for both SRT and MKV files
  16.         set "base_filename=episode_!episode_number!"
  17.  
  18.         :: Rename the SRT file
  19.         ren "%%f" "!base_filename!.srt"
  20.         echo Renamed SRT file: %%f to !base_filename!.srt
  21.  
  22.         :: Construct the corresponding MKV filename
  23.        :: set "mkvname=!base_filename!.mkv"
  24.         set "mkvname=%%f"
  25.         set "mkvname=!mkvname:.srt=.mkv!"
  26.  
  27.         :: Check if the MKV file exists before renaming
  28.         if exist "!mkvname!" (
  29.            :: Rename the MKV file
  30.             ren "!mkvname!" "!base_filename!.mkv"
  31.             echo Renamed MKV file: !mkvname! to !base_filename!.mkv!
  32.         ) else (
  33.             echo WARNING: Corresponding MKV file !mkvname! not found for %%f
  34.         )
  35.     ) else (
  36.         echo WARNING: No episode number found in file %%f
  37.     )
  38. )
  39.  
  40. endlocal
Add Comment
Please, Sign In to add comment