HOWTO · Batch
Eine Datei in einem Batch-Skript umbenennen
Erfahren Sie, wie Sie mit ren, rename, Platzhaltern, Pfaden, Variablen und for-Schleifen eine oder mehrere Dateien in einem Windows-Batch-Skript umbenennen.
Auf dieser Seite
Mit dem ren- oder rename-Befehl können Sie in einer Windows-Batch-Datei einen Dateinamen ändern, ohne die Datei zu verschieben. Der Befehl funktioniert in cmd.exe, und eine .bat- oder .cmd-Datei kann ihn wiederholt auf passende Dateien anwenden. Die folgenden Beispiele verwenden das aktuelle Verzeichnis, sofern kein Quellpfad angegeben ist.
Einfacher Befehl zum Umbenennen in einem Batch-Skript
Die Syntax lautet:
ren <old-name> <new-name>
rename ist die längere, gleichwertige Schreibweise von ren. Setzen Sie Namen mit Leerzeichen in Anführungszeichen:
@echo off
ren "old report.txt" "new report.txt"
Bei Erfolg gibt cmd.exe normalerweise keine Meldung aus. Prüfen Sie das Ergebnis mit dir oder indem Sie kontrollieren, ob der neue Name vorhanden ist. Das Ziel ist ein neuer Name und kein zweiter Pfad: ren kann eine Datei nicht in ein anderes Verzeichnis oder Laufwerk verschieben. Verwenden Sie move, wenn der Vorgang auch das Verzeichnis ändern soll.
Mehrere Dateien mit Platzhaltern umbenennen
Platzhalter lassen einen Befehl auf eine Gruppe von Quellnamen passen. Dieser Befehl ändert die Erweiterung jeder .txt-Datei im aktuellen Verzeichnis und behält dabei den jeweiligen Basisnamen bei:
@echo off
ren "*.txt" "*.bak"
Beispielsweise wird notes.txt zu notes.bak und report.txt zu report.bak. Das * im Ziel entspricht dem Basisnamen der Quelle; es gibt nicht jeder Datei wörtlich den Namen *.bak. Der Platzhalter ? entspricht einer Zeichenposition und kann ein Muster eingrenzen, etwa ren "log?.txt" "archived-?.txt".
Eine Datei in einem bestimmten Verzeichnis umbenennen
Die Quelle kann ein Laufwerk und ein Verzeichnis enthalten:
@echo off
ren "C:\Work\incoming\report.txt" "report-old.txt"
Die umbenannte Datei bleibt in C:\Work\incoming. Schreiben Sie kein Verzeichnis als zweites Argument, etwa ren "C:\Work\incoming\report.txt" "C:\Work\archive\report.txt"; das wäre ein Verschieben und gehört nicht zur Syntax von ren. Führen Sie die Batch-Datei mit Berechtigungen aus, die Änderungen im Quellverzeichnis erlauben.
Variablen und eine for-Schleife verwenden
Variablen sind nützlich, wenn ein anderer Befehl den alten oder neuen Namen zusammensetzt oder ein Benutzer ihn eingibt. Setzen Sie die Variablenzuweisung in Anführungszeichen, damit keine unbeabsichtigten Leerzeichen übernommen werden:
@echo off
set "oldname=old report.txt"
set "newname=reviewed report.txt"
ren "%oldname%" "%newname%"
Um jeder .txt-Datei ein Präfix hinzuzufügen, verwenden Sie eine for-Schleife. %%F ist die Form der Schleifenvariable in einer Batch-Datei, und %%~nxF erweitert sich zum ursprünglichen Namen einschließlich Erweiterung:
@echo off
for %%F in (*.txt) do ren "%%F" "new_%%~nxF"
Testen Sie dies zuerst in einer Kopie des Verzeichnisses. Ein bereits vorhandenes Ziel kann das Umbenennen verhindern, und ein Quellmuster ohne Treffer benennt nichts um. Eine Schleife kann außerdem mitten im Ablauf auf eine Kollision stoßen. Prüfen Sie daher das Verzeichnis nach dem Befehl und behalten Sie Sicherungskopien, wenn die Namen wichtig sind.
Häufige Fragen
Sind ren und rename unterschiedliche Befehle?
Nein. In cmd.exe ist rename die Langform von ren.
Warum ist das Umbenennen fehlgeschlagen?
Prüfen Sie, ob die Quelle vorhanden ist, das Ziel nicht bereits verwendet wird, die Anführungszeichen stimmen und die Batch-Datei Zugriff auf das Verzeichnis hat. Eine fehlende Quelle erzeugt einen Fehler, statt eine neue Datei anzulegen. Auch ein Zielpfad ist ungültig, weil ren innerhalb des Quellverzeichnisses umbenennt.
Kann ich ein Verzeichnis umbenennen?
Ja, ren kann ein Verzeichnis umbenennen, aber auch dann darf das Ziel keinen anderen Pfad angeben. Verwenden Sie move, wenn Sie es verschieben möchten.