Kategorien
Tutorials

Total Commander: Massenumbenennung per RegEx

Das Umbennen von mehreren Dateien kann eine zeitraubende Angelegenheit sein. Das Tool Total Commander bringt ein "Mehrfach-Umbenenn-Tool" mit, mit dem sich diese Aufgabe deutlich vereinfachen lässt.

Getestet wurde dieser Artikel mit Total Commander 11.00.

Beispielszenarien

Immer dann, wenn mehrere Dateien mit einem ähnlichen Aufbau umbennant werden sollen, eignet sich das Mehrfach-Umbennen-Tool aus Total Commander. Folgende Szenarien könnten exemplarisch mit diesem Tool gemeistert werden:

Alter DateinameNeuer Dateiname
com_Ausgabe_yyyy-nn.pdfcom! yyyy.nn.pdf
Kryptokompass-Ausgabe-n(n)-MONAT-yyyy.pdfKryptokompass_yyyy-MONAT.pdf
PCG_nnyy.pdfPCG_yyyy.nn.pdf
Bei den Dateien aus der Tabelle handelt es sich um Zeitschriften, die einheitlich benannt werden sollen. Das "n" in der Tabelle steht für die Ausgaben-Nr. des jeweiligen Jahres. "nn" steht für eine Zweistellige Nummer.

Mehrfach-Umbenenn-Tool starten

Zunächst sind in Total Commander die gewünschten Dateien zu markieren. Anschließend kann das Mehrfach-Umbenenn-Tool per "Dateien" -> "Mehrfach-Umbenenn-Tool..." oder mit der Tastenkombination "Strg" + "M" gestartet werden.

Total Commander Massenumbenennung

Im Mehrfach-Umbenenn-Tool ist im oberen rechten Bereich der Haken "RegEx" zu aktivieren. Direkt darüber sind zwei Eingabefelder, in denen per "Suchen & Ersetzen" mit RegEx gearbeitet werden kann. In der unteren Liste ist sofort eine Vorschau der neuen Dateinamen zu sehen.

Total Commander Mehrfach-Umbenenn-Tool
Alle Änderungen die gemacht werden, werden direkt unten in der Livevorschau sichtbar.

Nachdem in diesem Fenster alle Parameter eingestellt wurden (dazu später mehr in den Beispielszenarien), kann die eigentliche Umbenennung mit einem Klick auf "Start!" am unteren Fensterrand gestartet werden.

Beispielszenario 1

In diesem Szenario möchte ich diverse PDF-Dateien umbenennen. Die Dateien sind nach dem Schema com_Ausgabe_yyyy-nn.pdf benannt. "yyyy" steht dabei für eine vierstellige Jahreszahl und "nn" für eine zweistellige Nummer, die die Ausgabennummer der Zeitschrift repräsentiert. Das Zielformat lautet com! yyyy.nn.pdf.

An dieser Stelle brauchen wir RegEx, weil wir variable Teile aus dem alten Namen extrahieren und im neuen Namen weiterverwenden wollen. Das ist insbesondere die Jahreszahl und die Ausgabennummer.

Die Jahreszahl bekommen wir mit dem Ausdruck (\d{4}). Das \d steht dafür, dass wir eine Dezimalzahl suchen und {4} bedeutet, dass wir vier Ziffern suchen. Die Klammern geben an, dass es sich um eine Gruppe handelt. Unser alter Dateiname kann also mit dem Ausdruck com_Ausgabe_(\d{4})_(\d{2}) beschrieben werden.

Wir können nun mit Variablen auf die Ergebnisse des RegEx aus dem Feld "Suchen nach" referenzieren. Die Variablen nutzen wir mit einem Dollar-Zeichen gefolgt von einer Nummer, die quasi den gewünschten RegEx symbolisiert. Mit $1 bzw. $2 referenzieren wir also auf das Ergebnis des ersten bzw. zweiten RegEx aus dem Feld "Suchen nach". Den neuen Dateinamen erhalten wir entsprechend mit com! $1.$2.

Suchen & Ersetzen auf einem Blick
com_Ausgabe_(\d{4})_(\d{2})
com! $1.$2

Total Commander Mehrfach-Umbenenn-Tool RegEx
Alle Änderungen die gemacht werden, werden direkt in der Livevorschau in der Liste sichtbar.

Beispielszenario 2

In diesem Szenario sollen Dateien von Kryptokompass-Ausgabe-n(n)-MONAT-yyyy.pdf in Kryptokompass_yyyy-MONAT.pdf umbenannt werden.

Dieses Beispiel ist ein wenig komplizierter als das vorangegangene, da die Ausgabennummer "n(n)" ein oder zwei Stellen betragen kann. Außerdem steht zwischen der Ausgabennummer und der Jahreszahl eine unterschiedliche Zeichenfolge. Die ein oder zweistellige Ausgabennummer fangen wir mit dem RegEx (\d{1,2}) ab. Den variablen Textteil zwischen der Ausgabennummer und der Jahreszahl mit (.*). Entsprechend erhalten wir den Ausdruck Kryptokompass-Ausgabe-(\d{1,2})-(.*)-(\d{4}) für das "Suchen nach"-Feld.

In diesem Beispiel ist die Ausgabennummer nicht relevant, daher brauchen wir den Wert des ersten RegEx nicht. Der Ausdruck für das "Ersetzen durch"-Feld lautet entsprechend Kryptokompass_$3-$2.

Suchen & Ersetzen auf einem Blick
Kryptokompass-Ausgabe-(\d{1,2})-(.*)-(\d{4})
Kryptokompass_$3-$2

Total Commander Mehrfach-Umbenenn-Tool RegEx
Auch etwas komplexere Szenarien lassen sich per RegEx umsetzen.
Natürlich hätte ich in diesem Beispiel das "Kryptokompass" am Anfang weglassen können, da dieser Teil im alten und neuen Dateinamen identisch ist. Jedoch habe ich mich der Übersicht halber entschieden ihn dennoch anzugeben.

Beispielszenario 3

Die Dateien sollen von PCG_nnyy.pdf in PCG_yyyy.nn.pdf umbenannt werden. Die Besonderheit in diesem Beispiel ist, dass der variable Anteil aus einer zweistelligen Ausgabennummer gefolgt von einer zweistelligen Jahreszahl besteht. Einzig unschön an diesem Szenario ist, dass die Jahreszahl im neuen Dateinamen vierstellig sein soll, im alten Dateinamen aber nur zweistellig ist. Es ist aber nicht bekannt, wie die ersten zwei Ziffern heißen, also ob beispielsweise 21 für 2021 oder für 1921 steht. Daher trickse ich hier ein wenig und trage im "Ersetzen durch"-Feld fest "20" ein, da es zumindest in diesem Szenario passt.

Suchen & Ersetzen auf einem Blick
(\d{2})(\d{2})
20$2.$1

Total Commander Mehrfach-Umbenenn-Tool RegEx
Manchmal muss man erfinderisch sein, wenn sich das gewünschte Ergebnis nicht ganz so einfach realisieren lässt.
Anders als im vorherigen Beispiel konzentriere ich mich für die "Suchen & Ersetzen"-Felder lediglich auf die wesentlichen Stellen, die geändert werden sollen. Da der Anfang identisch bleibt, lasse ich ihn in diesem Beispiel einfach weg.

Mehr Möglichkeiten in Kombination mit der Umbenennmaske

Die obere Methode funktioniert, hat aber den unschönen Nebeneffekt, dass wir die Jahreszahl manuell eintragen müssen und ist dadurch deutlich unflexibler. Wir haben aber die Möglichkeit in Total Commander den Namen des darüberliegenden Verzeichnisses abzufragen und zu verwerten. In meinem Fall liegen die PDFs alle in einem Ordner, der die entsprechende Jahreszahl im Namen enthält. In meinem Fall etwa "2021". Diesen kann ich abfragen.

Zunächst lösche ich einmal in den beiden Feldern "Suchen & Ersetzen" und ergänze ein [P] in das Feld "Umbenennmaske". Wir sehen, dass der Name des darüberliegenden Verzeichnisses an den eigentlichen Dateinamen angehangen wird.

Total Commander Mehrfach-Umbenenn-Tool Umbenennmaske [P]
Der Platzhalter [P] in der Umbenennmaske fügt den Namen des darüberliegenden Verzeichnisses ein.

Wir haben die Ausgangsbasis geschaffen und können nun den RegEx erstellen. Wir haben jetzt einen Dateinamen im Format PCG_AUSGABENNUMMER+ZWEISTELLIGEJAHRESZAHL+VIERSTELLIGEJAHRESZAHL (das + dient nur der lesbarkeit und ist natürlich nicht Teil des Dateinamens). Daher brauchen wir auch einen RegEx, der aus drei Gruppen besteht: zweistellige Ausgabennummer, zweistellige Jahreszahl und vierstellige Jahreszahl. Der RegEx dafür lautet (\d{2})(\d{2})(\d{4}). Davon brauchen wir aber nur die dritte (vierstellige Jahreszahl) und die erste Zahlengruppe (zweistellige Ausgabennummer). Diese können mit dem Ausdruck $3 bzw. $1 angesprochen werden.

Suchen & Ersetzen auf einem Blick
(\d{2})(\d{2})(\d{4})
$3.$1

Total Commander Mehrfach-Umbenenn-Tool RegEx und Umbenennmaske [P]
RegEx in Kombination mit der Umbenennmaske eröffnet weitere unzählige Lösungsansätze zur Massenumbenennung.
Das gezeigte Vorgehen funktioniert deshalb, weil Total Commander die Funktion "Suchen & Ersetzen" nach der "Umbenennmaske" ausführt. Entsprechend stehen die Ergebnisse der Umbenennmaske für "Suchen & Ersetzen" zur Verfügung.
Total Commander unterstützt diverse weitere Umbenennmasken. In der Doku können diese nachgelesen werden.

Nützliche RegEx zusammengefasst

Folgende RegEx sind für die Massenumbenennung besonders hilfreich:

RegExErklärung
()Gruppierung
\dDezimalzahl
\d{2}Zweistellige Dezimalzahl
\d{1,2}Ein- bis zweistellige Dezimalzahl
.*Jedes Zeichen darf beliebig oft vorkommen
[a-z]Alle Buchstaben von a bis z
[a-z]{2,3}Alle Buchstaben von a bis z (zwei bis drei Zeichen)
Die Zahlen in der Tabelle sind natürlich nur Beispiele und können frei geändert werden.

Wer eigene RexEx schreiben und testen möchte, kann dies mit dem Tool regex101 tun. Außerdem zeigt das Tool zugleich Erklärungen zu den RegEx an.


Weiterführende Links
https://www.ghisler.ch/wiki/index.php/Multi-rename_tool
https://www.ghisler.com/screenshots/de/06.html
https://regex101.com/

Seit mehreren Jahren begeistere ich mich privat und beruflich für die IT. Das habe ich dann auch zum Anlass genommen, diesen Blog ins Leben zu rufen, um dort praxisnahe Tutorials über verschiedene IT-Themen zu schreiben und meine selbst geschriebene Software zu veröffentlichen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert