名前を変更したいエピソードが何千もあり、それらはすべて同様の形式になっています。
これを手動で行うと、非常に長い時間がかかります。
したがって、次の例の名前を一括変更する簡単な方法が必要になります。
[ソース]SeriesName_-_001_EpisodeName_[480p][DVD][アップローダー]
[出典]SeriesName_-_010_EpisodeName_[720p][BD][アップローダー]
[ソース]SeriesName_-_100_EpisodeName_[1080p][BD][アップローダー]
ただ:
シリーズ名 エピソード 1 - エピソード名
シリーズ名 エピソード 10 - エピソード名
シリーズ名 エピソード 100 - エピソード名
どうすればこれを達成できるでしょうか?
答え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"
バッチ ファイルでは、すべてのパーセント記号を 2 倍にします。
最初の for は、a で始まるすべての項目を反復します。2 番目の for[
は、指定されたすべての区切り文字で名前を分割します (隣接する区切り文字は 1 つとしてカウントされます)。分割には 2 番目から 4 番目の区切り文字のみが使用されます。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"
)