(Win) Mehrere Dateien auf einmal umbennen

Dieses Skript ist in Batch geschrieben. Es hat die Aufgabe, in einem Windows-Ordner nach Dateinamenregeln Dateien umzubennen.

Zuerst benötigt man eine leere Textdatei in dem Ordner, in dem man die Dateien umbenennen möchte. In diese kopiert man folgenden Code herein und speichert diese dann. Die Dateiextension muss nun in cmd geändert werden.

Bei mir heißt die Datei TEST.cmd.

setlocal enabledelayedexpansion
for %%i in (%1) do (
set x=%%i
ren "%%i" "!x:%~2=%~3!"
)

In der letzten Zeile wird ren mit dem aktuellen Objekt der for-Schleife gefüttert. Der neue Name, das zweite Argument, arbeitet mit der String-Ersetzung: In x wird der Abschnitt ~2 durch ~3 ersetzt. Das funktioniert aber nur mit der Verzögerten Expansion.

Der Aufruf des Skriptes erfolgt auf der Kommandozeile (Eingabeaufforderung) aus dem Ordner (cd Pfad\zum\Ordner). Er hat das Schema „Skriptdatei“ „Namensschema der umzubenennenden Dateien“ „zu ersetzender Dateinamensteil“ „Ersatzstring“.

Ich habe auf Arbeit einen abgesicherten Rechner, der keine Kommandozeile in Arbeitsordnern zulässt. Daher habe ich die Zeile zum Aufruf in eine zweite Textdatei geschrieben und die Extension in bat geändert. Die Datei heißt bei mir umbennenen.bat und liegt im selben Ordner wie die obige cmd-Datei.

Beispiel: Ich möchte alle PDF-Dokumente in einem Ordner, deren Dateinamen auf _1 endet, so umbennen, dass diese Endung entfällt. Meine umbennenen.bat hat daher den folgenden Inhalt:

TEST.cmd *_1.PDF _1

Bei mir fehlt das letzte Argument, weil ich den Namensteil komplett entfallen lassen möchte. Das macht die Zeile Code noch kürzer.

Die TEST.cmd ist sehr universell. Die umbennenen.bat ruft diese auf und steuert die genaue Arbeitsweise. Viele langwierige Aufgaben lassen sich mit ihr lösen.

Jetzt die beiden Dateien herunterladen.