2013-06-25 2 views
0

Я хочу переименовать свои телешоу в соответствии с эпизодом и серией из них. Мои телешоу обычно находятся в формате «[Показать имя] .SabEyz.blabla.mp4», например, Futurama.S07E01.HDTVx264.mp4 ' Я хочу переименовать их в этом формате «Эпизод xy - [Показать имя] - Серия ab.mp4'Переименование эпизодов телешоу с использованием партии

Я попытался с помощью следующих действий:

for %%a in (*S07E??*.mp4) do ren '%%a' 'Episode ?? - Futurama - Series 7.mp4' 

Но он дал мне ошибку, что указанный файл не был найден

Как вы можете увидеть выше сценарий не может быть использован в целом для все серии того же шоу. Я тоже хотел бы что-то сделать. Спасибо!

+2

Во-первых, вы должны перейти на реальные цитаты '' %% ~ a "' вместо '' %% a''. '' 'Нельзя использовать так, как вы его пробовали. Вам нужна более логичная логика здесь – jeb

+1

попробуйте [Advanced Renamer] (http://www.advancedrenamer.com/), лучший renamer для видеофайлов! : T – Endoro

ответ

0
@ECHO OFF 
SETLOCAL enabledelayedexpansion 
FOR /f "tokens=1-3delims=." %%i IN ('dir /b/a-d *.*.*.mp4') DO (
SET seriesep=%%j 
SET /a series=1!seriesep:~1,2! - 100 
SET /a episode=1!seriesep:~-2! - 100 
ECHO REN "%%i.%%j.%%k.mp4" "Episode !episode! - %%i - Series !series!.mp4" 
) 
GOTO :EOF 

Это должно сделать переименование, как указано - ну, это будет ECHO команды переименования на экран - удалить ECHO ключевое слово, чтобы активировать переименование.

Не уверен, хотите ли вы сохранить или подавить ведущие 0. Если вы хотите сохранить их, изменить (например)

SET /a series=1!seriesep:~1,2! - 100 

в

SET series=!seriesep:~1,2! 

ИЛИ

заменителем !seriesep:~1,2! для !series! в [echo] REN линии.

2
@echo off 
setlocal EnableDelayedExpansion 

for /F "tokens=1,2* delims=." %%a in ('dir /B *.mp4') do (
    set sXXeYY=%%b 
    ren "%%a.%%b.%%c" "Episode !sXXeYY:~4,2! - %%a - Series !sXXeYY:~1,2!.mp4" 
) 
+0

Можете ли вы расширить свой ответ? –