Batch-Umbenennung von Episoden

632
Daryll McDonald

Ich habe Tausende von Episoden, die ich umbenennen möchte, die alle in einem ähnlichen Format vorliegen.

Das würde sehr lange dauern, wenn ich es manuell machen müsste.

Ich brauche also eine einfache Möglichkeit, die folgenden Beispiele stapelweise umzubenennen:

[Quelle] Serienname _-_ 001_EpisodeName_ [480p] [DVD] [Uploader]

[Quelle] Serienname _-_ 010_EpisodeName_ [720p] [BD] [Uploader]

[Quelle] Serienname _-_ 100_EpisodeName_ [1080p] [BD] [Uploader]

um nur:

Serienname Episode 1 - EpisodeName

Serienname Episode 10 - EpisodeName

Serienname Episode 100 - EpisodeName

Wie könnte ich das erreichen?

-1
Hier gibt es viele Fragen zum Umbenennen von Dateien im Stapel. Was hast du bisher versucht? music2myear vor 6 Jahren 0
Ich habe "Batch Rename Utility" ausprobiert und diese Formel verwendet: [Match (0) (. *) Und Replace: \ 2], aber es wurden nur Zeichen vor der Nummer entfernt Daryll McDonald vor 6 Jahren 0

1 Antwort auf die Frage

1
LotPings

Ich würde aus Gründen der Sortierung die konstante Episodenlänge beibehalten.

Was ist mit Erweiterungen (mein einziger Liner behält sie bei)?

In der Kommandozeile:

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

Beispielausgabe:

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" 

Verdoppeln Sie in einer Batchdatei alle Prozentzeichen.

Der erste für iteriert alle Elemente, beginnend mit einem. [
Der zweite für den Namen trennt den Namen an allen angegebenen Trennzeichen (benachbarte zählen nur als einer) und nehmen nur den zweiten bis vierten Platz ein. Der Befehl ren wird nur aus Sicherheitsgründen wiederholt. Entfernen Sie das Echo, wenn die Ausgabe in Ordnung ist.

BEARBEITEN: Diese Batch-Datei-Version entfernt führende Nullen:

:: 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" ) 
Danke, LotPings, die .bat-Befehlszeile scheint zu funktionieren, aber ich brauche nur einen Weg, um die Nullen vor jeder Zahl zu entfernen Daryll McDonald vor 6 Jahren 0
Siehe erweiterte Antwort. LotPings vor 6 Jahren 0