Как Пакетно Переименовать Эпизоды

538
Daryll McDonald

У меня есть тысячи эпизодов, которые я хочу переименовать, и все они в формате similair.

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

Поэтому мне понадобится простой способ пакетного переименования следующих примеров:

[Источник] SeriesName _-_ 001_EpisodeName_ [480p] [DVD] [Загрузчик]

[Источник] SeriesName _-_ 010_EpisodeName_ [720p] [BD] [Загрузчик]

[Источник] SeriesName _-_ 100_EpisodeName_ [1080p] [BD] [Загрузчик]

чтобы просто:

SeriesName Эпизод 1 - EpisodeName

SeriesName Эпизод 10 - EpisodeName

SeriesName Эпизод 100 - EpisodeName

Как я смогу добиться этого?

-1
Здесь много вопросов о переименовании файлов в пакетном режиме. что ты уже испробовал? music2myear 6 лет назад 0
Я пробовал «Утилиту пакетного переименования» и использовал эту формулу: [Match (0) (. *) И Replace: \ 2], но он удалял только символы перед числом Daryll McDonald 6 лет назад 0

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

1
LotPings

Я бы сохранил постоянную длину номера эпизода по причинам сортировки.

Как насчет расширений (мой один вкладыш сохраняет их)?

В командной строке:

for %F in ([*) do @for /f "tokens=2-4 delims=-_[]" %A in ("%F") do @echo Ren "%~fF" "%A Episode %B - %C%~xF" 

Образец вывода:

Ren "Q:\Test\2018\04\05\[Source]SeriesName_-_001_EpisodeName_[480p][DVD][Uploader]" "SeriesName Episode 001 - EpisodeName" Ren "Q:\Test\2018\04\05\[Source]SeriesName_-_100_EpisodeName_[1080p][BD][Uploader]" "SeriesName Episode 100 - EpisodeName" Ren "Q:\Test\2018\04\05\[Source]SeriesName_-_010_EpisodeName_[720p][BD][Uploader]" "SeriesName Episode 010 - EpisodeName" 

В пакетном файле удвойте все знаки процента.

Первое для итерирует все элементы, начинающиеся с a [
Второе для разделяет имя на все указанные разделители (соседние считаются только одним), занимая только второе-четвертое. Команда ren выводится только по соображениям безопасности. Уберите эхо, если выход в порядке.

РЕДАКТИРОВАТЬ: Эта версия пакетного файла удаляет начальные нули:

:: SU1310869.cmd @Echo off&SetLocal EnableExtensions EnableDelayedExpansion :: cd /d "X:\folder\episodefiles for %%F in ([*) do @for /f "tokens=2-4 delims=-_[]" %%A in ("%%F") do ( set /a Num=1%%B - 1000 @echo Ren "%%~fF" "%%A Episode !Num! - %%C%%~xF" ) 
Благодаря LotPings, командная строка .bat, кажется, работает, но мне просто нужен способ удалить нули перед каждым числом Daryll McDonald 6 лет назад 0
Смотрите расширенный ответ. LotPings 6 лет назад 0

Похожие вопросы