如何批量重命名剧集

如何批量重命名剧集

我有数千集想要重命名的剧集,它们都是类似的格式。

如果我必须手动完成此操作,这将花费很长时间。

因此我需要一个简单的方法来批量重命名以下示例:

[来源]系列名称_-_001_剧集名称_[480p][DVD][上传者]

[来源]系列名称_-_010_剧集名称_[720p][BD][上传者]

[来源]系列名称_-_100_剧集名称_[1080p][BD][上传者]

只是:

系列名称 第 1 集 - EpisodeName

系列名称 第 10 集 - EpisodeName

系列名称 第 100 集 - EpisodeName

我怎样才能实现这个目标?

答案1

出于排序原因,我会保持剧集编号的长度不变。

那么扩展怎么样(我的一行代码保留了它们)?

在命令行中:

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"

在批处理文件中,将所有百分号加倍。

第一个 for 迭代所有以 a 开头的项目[
第二个 for 在所有指定的分隔符处拆分名称(相邻的分隔符仅算作一个),仅取第二到第四个。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"
)

相关内容