에피소드 이름을 일괄 변경하는 방법

에피소드 이름을 일괄 변경하는 방법

이름을 바꾸고 싶은 에피소드가 모두 비슷한 형식으로 수천 개 있습니다.

수동으로 해야 한다면 시간이 정말 오래 걸릴 것입니다.

따라서 다음 예제의 이름을 일괄적으로 바꾸는 간단한 방법이 필요합니다.

[출처]시리즈이름_-_001_에피소드이름_[480p][DVD][업로더]

[출처]시리즈이름_-_010_에피소드이름_[720p][BD][업로더]

[출처]시리즈이름_-_100_에피소드이름_[1080p][BD][업로더]

그냥 :

SeriesName 에피소드 1 - EpisodeName

SeriesName 에피소드 10 - EpisodeName

SeriesName 에피소드 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 명령은 보안상의 이유로만 에코됩니다. 출력이 정상이면 에코를 제거하십시오.

편집하다:이 배치 파일 버전은 앞에 오는 0을 제거합니다.

:: 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"
)

관련 정보