Cara Batch Ganti Nama Episode [duplikat]

-1

Pertanyaan ini sudah ada jawabannya di sini:

Saya memiliki ribuan episode yang ingin saya ganti namanya yang semuanya dalam format similair.

Ini akan memakan waktu yang sangat lama jika saya harus melakukannya secara manual.

Jadi saya akan membutuhkan cara sederhana untuk mengubah nama contoh berikut:

[Sumber] SeriesName _-_ 001_EpisodeName_ [480p] [DVD] [Uploader]

[Source] SeriesName _-_ 010_EpisodeName_ [720p] [BD] [Uploader]

[Source] SeriesName _-_ 100_EpisodeName_ [1080p] [BD] [Uploader]

hanya:

SeriesName Episode 1 - EpisodeName

SeriesName Episode 10 - EpisodeName

SeriesName Episode 100 - EpisodeName

Bagaimana saya bisa mencapai ini?

Daryll McDonald
sumber
Ada banyak pertanyaan di sini tentang mengganti nama file dalam batch. Apa yang sudah Anda coba sejauh ini?
music2myear
Saya sudah mencoba "Batch Rename Utility" dan menggunakan ini menggunakan rumus ini: [Match (0) (. *) Dan Ganti: \ 2] tetapi hanya menghapus karakter sebelum nomor
Daryll McDonald

Jawaban:

1

Saya akan menjaga panjang jumlah episode konstan untuk alasan penyortiran.

Bagaimana dengan ekstensi (one liner saya menyimpannya)?

Di baris perintah:

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

Output sampel:

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"

Dalam file batch, gandakan semua tanda persen.

Yang pertama untuk iterates semua item dimulai dengan yang [
kedua untuk membagi nama di semua pembatas yang ditentukan (yang berdekatan dihitung sebagai hanya satu) mengambil hanya detik ke keempat. Perintah ren hanya digaungkan karena alasan keamanan. Hapus gema jika outputnya OK.

EDIT: Versi file batch ini menghapus nol terkemuka:

:: 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"
)
Lotings
sumber
Terima kasih LotPings, baris perintah .bat tampaknya berfungsi, tetapi saya hanya perlu cara untuk menghapus nol sebelum setiap nomor
Daryll McDonald
Lihat jawaban yang diperluas.
Lotings