ToolActToolAct

Massen-Dateiumbenennung

Präfixe, Suffixe, fortlaufende Nummern, Suchen & Ersetzen, Groß-/Kleinschreibung, Erweiterungen anpassen — alles im Browser

Dateien hinzufügen

Dateien hierher ziehen oder unten auf den Button klicken

Beliebiger Dateityp und beliebige Anzahl, Verarbeitung nur im Browser — nichts wird hochgeladen

Was ist Massen-Dateiumbenennung?

Massen-Dateiumbenennung bedeutet, eine Gruppe von Dateinamen in einem Durchgang nach festen Regeln zu ändern. Typische Szenarien: Kameraexporte wie IMG_1234.JPG zu 2026-06-trip-001.jpg machen, UI-Export-Assets mit @2x_ präfixen, gescannte Belege nach Rechnungsdatum durchnummerieren. Das in macOS Finder eingebaute Umbenennen deckt Suchen & Ersetzen sowie ein Format aus Name + Zähler ab, kann aber keine Erweiterungen umschreiben; das Tab-Umbenennen im Windows-Explorer unterstützt nur einfache Sequenznummern (PowerToys PowerRename ergänzt Regex, muss aber separat installiert werden). Aufwendigere Aufgaben erfordern üblicherweise ReNamer, Bulk Rename Utility oder selbstgeschriebene PowerShell- bzw. Shell-Skripte. Dieses Werkzeug zerlegt jeden Vorgang in eine visuelle Steuerung mit Live-Vorschau und Duplikatserkennung, sodass Sie das Ergebnis vor dem Download verifizieren können. Alles läuft im Speicher des Browsers, sodass Dateinamen mit Projektkürzeln, Kundennamen oder persönlichen Informationen das Gerät nie verlassen.

Verwendung

Schritte

  1. Dateien in den Upload-Bereich ziehen oder auf "Dateien auswählen" klicken — wiederholtes Hinzufügen erweitert die Liste
  2. Mit "Nach Name / Größe sortieren" umordnen oder die Pfeile in jeder Zeile zur Feinjustierung nutzen
  3. Regeln auf den drei Karten konfigurieren: Präfix/Suffix, Suchen & Ersetzen, Nummerierung, Schreibweise, Erweiterung
  4. Die Spalte "Neuer Name" aktualisiert sich live — Blau bedeutet Abweichung vom Original, Rot bedeutet Kollision mit einer anderen Datei
  5. Auf "Diese Datei herunterladen" klicken, um einzelne Dateien zu speichern, oder auf "Als ZIP herunterladen", um alles auf einmal zu erhalten

Reihenfolge der Regeln

  • Zuerst wird der Basisname ersetzt (leer lassen, um Original zu behalten) — nützlich, wenn jede Datei am Ende z. B. "photo" plus Sequenznummer heißen soll, unabhängig vom ursprünglichen Namen
  • Dann läuft Suchen & Ersetzen nur auf dem Basisnamen, niemals auf der Erweiterung
  • Anschließend wird die Nummerierung als Präfix, Suffix oder vollständiger Ersatz des Basisnamens eingefügt
  • Präfix und Suffix umschließen das Ergebnis
  • Schreibweisen-Transformation und Erweiterungs-Behandlung kommen zuletzt; die Erweiterung wird unabhängig verarbeitet

Anwendungsfälle

Kamera-/Handy-Fotoexporte ordnenKamera-Standardnamen wie DSC_0001.JPG oder IMG_1234.JPG tragen keinerlei semantische Bedeutung. Ein Datums- oder Themen-Präfix mit Sequenznummer macht Alben auf einen Blick lesbar. "Erweiterung in Kleinbuchstaben" verhindert, dass JPG/jpg gemischt werden und beim Sync von case-insensitiven Systemen (Windows/macOS) auf case-sensitive (Linux) zu Problemen führen.
iOS-Asset-BenennungDesigner-Exporte wie "icon-home @2x.png" und "icon-home @3x.png" lassen sich gebündelt zu "icon-home@2x.png" und "icon-home@3x.png" umformen, passend zu den Konventionen des Xcode Asset Catalog. Mit Suchen & Ersetzen Leerzeichen entfernen und anschließend den Basisnamen kleinschreiben, um Ladefehler durch Groß-/Kleinschreibung in der Produktion zu vermeiden.
Android-Drawable-Namen normalisierenAndroid verlangt Ressourcennamen in reinem snake_case (Kleinbuchstaben), ohne führende Ziffer. Gemischte Exporte wie IcHomeActive.png oder ic-home-active.png lassen sich in einem Durchgang zu ic_home_active.png umbenennen: `-` durch `_` ersetzen, Basisnamen kleinschreiben, Erweiterung kleinschreiben. So fängt man den Lint-Fehler ab, bevor der Build es tut.
Belege/Verträge nach Monat archivierenGescannte Dateien wie scan001.pdf bis scan100.pdf haben keinen Archivbezug. Mit Basisname "2026-06-belege-" und 3-stelliger nullaufgefüllter Nummerierung entsteht "2026-06-belege-001.pdf". Eine Sortierung nach Dateiname entspricht nun einer Sortierung nach Datum, und ein einziges ZIP fasst den gesamten Monat.
Medienclips für den Schnitt vereinheitlichenCutter müssen Multi-Kamera-Material oft nach Szene umbenennen, z. B. GoPros GH010001.MP4 → SceneA_take01.mp4. Das Basisnamen-Feld zum Überschreiben des Originals nutzen, Nummerierung aktivieren, Erweiterung kleinschreiben — der gesamte Stapel reiht sich alphabetisch in der Schnittsoftware ein, was den Multicam-Sync erleichtert.
Sensible oder überflüssige Tokens aus Dateinamen entfernenExportierte Dateien tragen häufig Suffixe wie (1), (Kopie) oder _final_v2_FINAL. Suchen & Ersetzen räumt sie in einem Durchgang auf. Dateien mit Kunden-/Projektkürzeln können vor dem externen Versand gebündelt zu anonymen Codes gemacht werden. Alles geschieht im Browser-Speicher — Originale verlassen das Gerät nie.
Statische Assets fürs Web normalisierenVor dem Upload zu einem CDN oder Object Storage Leerzeichen, Nicht-ASCII-Zeichen und Großbuchstaben normalisieren, um URL-Encoding-Fallen zu vermeiden. Leerzeichen durch Bindestriche ersetzen, Basisnamen kleinschreiben, Erweiterung kleinschreiben — ein Durchgang liefert SEO-freundliche, systemübergreifend sichere Asset-Namen.

Funktionsweise

Das gesamte Werkzeug basiert auf der File API, Blob und URL.createObjectURL des Browsers — jedes Byte bleibt im Speicher. Beim Drop oder Auswählen übergibt der Browser JavaScript File-Objekte (Blob-Subklassen) auf dem JS-Heap; das Werkzeug liest pro Datei nur die `name`-Eigenschaft zum Umbenennen, der Binärinhalt wird nie angefasst. Die Regeln werden in fester Reihenfolge angewendet, um Wechselwirkungen zu vermeiden: Zuerst wird der Basisname bestimmt (vom Nutzer angegeben oder Originalbasis), wobei die Erweiterung mit lastIndexOf('.') abgespalten wird (Dotfiles wie .gitignore werden ausschließlich als Basis behandelt, ohne Erweiterung); anschließend läuft Suchen & Ersetzen als String.prototype.split + Array.prototype.join (kein Regex — vermeidet ungewollte Sonderzeichen-Treffer); danach wird die Sequenznummer per `String(start + i).padStart(pad, '0')` berechnet und als Präfix/Suffix/Ersatz des Basisnamens platziert; Präfix und Suffix werden anschließend um das Ergebnis herum verkettet; die Schreibweisen-Transformation wirkt dann auf den gesamten String aus Präfix+Basis+Suffix auf einmal; die Erweiterung wird unabhängig verarbeitet (Beibehalten/Groß/Klein/Ersetzen). Die Duplikatserkennung zählt jeden neuen Namen während der Vorschau in einer Map<string, number>; Namen, die mehr als einmal vorkommen, landen in einem duplicateSet, das die UI rot hervorhebt. Klickt man bei nicht-leerem Set auf "Als ZIP herunterladen", erscheint eine Fehler-Toast und der Pack-Vorgang wird abgebrochen — die ursprüngliche Liste bleibt erhalten, sodass du die Regeln anpassen und es erneut versuchen kannst. Das läuft innerhalb von useMemo([files, opts]), sodass Regeländerungen inkrementell neu berechnet werden, ohne die Dateiliste neu zu rendern. Einzeldatei-Downloads verpacken die File in URL.createObjectURL, lösen einen synthetischen `<a download>`-Klick aus und widerrufen die URL umgehend. Das ZIP-Packen importiert JSZip beim ersten Klick dynamisch (~80 KB, kein Aufschlag auf den Erstaufbau), liest arrayBuffer() jeder Datei, schreibt sie unter dem neuen Namen und ruft generateAsync({type:'blob', compression:'DEFLATE', compressionOptions:{level:6}}) auf. DEFLATE ist der ZIP-Standard; Stufe 6 wiegt Kompressionsrate gegen Geschwindigkeit ab. Die Regelberechnung ist O(n) bezogen auf die Dateianzahl; die Pack-Zeit skaliert mit der Gesamtbytemenge. Browser lesen File-Inhalte typischerweise verzögert — arrayBuffer() ist der Moment, in dem Bytes tatsächlich von der Festplatte kommen — sodass selbst Tausende eingereihte Dateien während der Vorschau quasi nichts kosten und der Speicher-Peak erst beim "Als ZIP herunterladen" auftritt.

  • lastIndexOf('.') trennt die Erweiterung ab; liegt der einzige Punkt am Index 0 (z. B. .gitignore), hat die Datei keine Erweiterung und der führende Punkt bleibt Teil des Basisnamens
  • Suchen & Ersetzen nutzt String.prototype.split + Array.prototype.join statt replaceAll, um eine versehentliche Interpretation von $1/$& im Ersetzungstext auszuschließen
  • padStart(pad, '0') erzeugt die nullaufgefüllte Nummer; pad=0 gibt die rohe Zahl aus, wenn keine Ausrichtung benötigt wird
  • Die Schreibweisen-Transformation läuft erst nach dem Verketten von Präfix/Suffix, sodass sie den gesamten Basis-Abschnitt auf einmal normalisiert; die Erweiterung wird unabhängig behandelt
  • Die Duplikatserkennung läuft in einem useMemo mit einer Map; O(n)-Neuberechnung, und die UI tauscht für markierte Zeilen nur einen className aus — kein DOM-Neuaufbau
  • Blob-URLs werden über URL.revokeObjectURL umgehend widerrufen, um den URL-Allokationspool freizugeben, da reservierte Object-URLs bei intensiver Nutzung schnell anwachsen
  • JSZip wird per dynamischem Import erst beim Auslösen des Packens geladen, sodass die ~80 KB Code Erstaufbau und LCP nicht beeinflussen
  • DEFLATE-Stufe 6 ist der Sweet Spot im Browser; Stufe 9 fügt 1–2 % Kompression bei 2–3-facher Zeit hinzu und bringt bei bereits komprimierten Bildern/Videos kaum etwas

Beispiele

Präfix + 3-stellige nullaufgefüllte Nummerierung

Eingabe: photo.jpg, sunset.jpg, beach.jpg
Regeln: prefix=trip2026_, start=1, pad=3, position=after
Ausgabe:
trip2026_photo001.jpg
trip2026_sunset002.jpg
trip2026_beach003.jpg

Basisnamen vollständig ersetzen

Eingabe: GH010001.MP4, GH010002.MP4, GH010003.MP4
Regeln: base=SceneA_take, start=1, pad=2, position=after, ext=lowercase
Ausgabe:
SceneA_take01.mp4
SceneA_take02.mp4
SceneA_take03.mp4

Überflüssiges Suffix per Suchen & Ersetzen entfernen

Eingabe: report_v1_FINAL.docx, summary_v1_FINAL.docx
Regeln: find=_v1_FINAL, replace=(leer), case=lowercase
Ausgabe:
report.docx
summary.docx

Erweiterung ersetzen

Eingabe: index.htm, about.htm, contact.htm
Regeln: extension=replace, new ext=html
Ausgabe:
index.html
about.html
contact.html

Präfix + Leerzeichen-zu-Bindestrich + Kleinbuchstaben

Eingabe: Banner Image.PNG, Hero Photo.JPG
Regeln: prefix=web-, find=(Leerzeichen), replace=-, case=lowercase, extension=lowercase
Ausgabe:
web-banner-image.png
web-hero-photo.jpg

FAQ

Werden meine Dateien auf einen Server hochgeladen?

Nein. Vom Hinzufügen über das Erzeugen neuer Namen bis zum ZIP-Packen läuft alles lokal im Browser. Es werden keine Upload-Anfragen gestellt. Du kannst das im Network-Tab der Browser-DevTools prüfen.

Warum wird meine .gitignore / .bashrc nicht als Datei mit Erweiterung behandelt?

Das Werkzeug splittet am letzten Punkt, aber wenn der einzige Punkt ganz am Anfang steht (Dotfile), wird der gesamte Name als Basis behandelt — so wird die Markierung als versteckte Datei nicht mit einer Erweiterung verwechselt.

Was passiert, wenn meine neuen Namen kollidieren?

Die Vorschauliste hebt Duplikate rot hervor und zeigt eine Zählmarke. Ein Klick auf "Als ZIP herunterladen" wird bei vorhandenen Duplikaten mit einer Fehlermeldung blockiert — deine Dateiliste geht nicht verloren, du musst nur die Regeln anpassen und es erneut versuchen. Übliche Lösungen: Nummerierung aktivieren, mehr Stellen auffüllen, Präfix/Suffix ergänzen.

Können auch Ordner umbenannt oder Verschachtelungen erhalten werden?

Noch nicht. Die aktuelle Version verarbeitet eine flache Dateiliste. Für verzeichnisbewusste Massenumbenennung erst hier umbenennen und dann den Verzeichnisbaum mit dem ZIP-Pack-Werkzeug zusammenbauen.

Unterstützt Suchen & Ersetzen Regex?

Nein. Es nutzt absichtlich Literal-String-Matching (split-join), damit Nutzer keine Ersetzungsstring-Tokens wie $1 oder $& im Ersetzungstext versehentlich auslösen. Einfaches Matching deckt die allermeisten Aufräum-Aufgaben ab.

Wie viele Dateien sind möglich?

Es gibt keine harte Obergrenze für die Anzahl — die Vorschau ist praktisch kostenlos. Das Packen ist durch den Browser-Speicher begrenzt: Bei sehr großen Gesamtmengen (mehrere GB) kann die Allokation eines einzelnen Blobs scheitern; in dem Fall die Dateien in Stapel aufteilen und jeden separat packen.

Im heruntergeladenen ZIP erscheinen Nicht-ASCII-Namen verstümmelt. Warum?

JSZip schreibt Dateinamen standardmäßig als UTF-8, was moderne Entpacker (macOS Archivierungsprogramm, Windows-11-Explorer, 7-Zip, WinRAR 5+) korrekt lesen. Der alte Windows-Explorer unter Win 7/8 kann Nicht-Latein-Namen weiterhin falsch dekodieren — dann 7-Zip oder Bandizip verwenden.

Kann ich eine Umbenennung rückgängig machen, wenn ich einen Fehler gemacht habe?

Umbenennungen geschehen erst beim Download — solange du nicht auf "Als ZIP herunterladen" oder "Diese Datei herunterladen" klickst, bleiben die Originaldateien auf der Festplatte unverändert. Die Vorschau ist vollständig reversibel: Regeln zurücksetzen, anpassen oder einzelne Dateien aus der Liste entfernen. Wenn du bereits heruntergeladen hast, einfach die Regeln anpassen und mit denselben Quelldateien erneut herunterladen.