我有數千集想要重命名,它們都是類似的格式。
如果我必須手動完成,這將花費很長時間。
因此,我需要一種簡單的方法來批量重命名以下範例:
[來源]劇集名稱_-_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 開頭的所有項目[
。僅出於安全原因才回顯 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"
)