Tipps & Tricks 26.06.2013, 06:00 Uhr

Bilder gemäss Exceltabelle umbenennen

Problem: Ich muss immer wieder mal mehrere hundert Bilddateien verarbeiten. Diese sind alle mit der Artikelnummer des Herstellers bezeichnet, also z.B. 101319000.jpg. Nun muss ich diese Dateien umbenennen, damit sie unsere eigenen Artikelnummern tragen, z.B. 132-03305-000.jpg. Ich kann aus unserem System die 700 betroffenen Datensätze in eine Excel-Datei exportieren. Ich hätte also eine Tabelle mit Spalte A «Herstellernummer» und Spalte B «Unsere Nummer». Kann ich diese irgendwie zum automatischen Umbenennen der Bilddateien verwenden?
Lösung: Wenn Sie die Liste mit den alten und neuen Artikelnummern schon in einer Exceldatei parat haben, rückt Ihr Ziel in unmittelbare Griffnähe. Sie können nämlich Excel zum Erstellen der Batchdatei verwenden, die danach jedes Bild korrekt umbenennt. 
Wichtig! Erstellen Sie vom gesamten Bilderordner eine Arbeitskopie und verarbeiten Sie hier nur diesen mittels Batchdatei. Falls in der Batchdatei etwas nicht stimmen sollte, sind die Originale nicht betroffen. 
Kopie erstellt? Dann gehts jetzt zunächst zurück zu Excel. Die Syntax zum Umbenennen des ersten Bildes muss für die Batchdatei z.B. so lauten:
ren 101319000.jpg 132-03305-000.jpg
Ebenfalls wichtig: Falls die Dateinamen ein Leerzeichen enthalten, müssen diese am Schluss im Umbenennen-Befehl durch Anführungszeichen eingefasst sein. Der Befehl müsste dann am Schluss so aussehen:
ren "101319000.jpg" "132-03305-000.jpg"
Sie brauchen also diese Elemente:
Umbenennenbefehl (ren), Leerzeichen, (allenfalls Anführungszeichen "), Artikel alt, Endung .jpg, (allenfalls Anführungszeichen "), Leerzeichen, (allenfalls Anführungszeichen "), Artikel neu, Endung jpg, (allenfalls Anführungszeichen ").
Und genau in dieser Reihenfolge verbinden oder verketten Sie nun die benötigten Elemente. Hierfür können Sie sie per kaufmännischem UND (dem &-Zeichen) oder per Funktion VERKETTEN zusammenführen. Das Resultat ist dasselbe:
In C2 lautet die Formel somit: 
="ren"&" "&A2&".jpg"&" "&B2&".jpg"
oder mit Anführungszeichen:
="ren"&" "&""""&A2&".jpg"&""""&" "&""""&B2&".jpg"&""""
oder so:
=VERKETTEN("ren";" ";A2;".jpg";" ";B2;".jpg")
bzw. mit Anführungszeichen:
=VERKETTEN("ren";" ";"""";A2;".jpg";"""";" ";"""";B2;".jpg";"""")
Sie können natürlich die beiden Leerzeichen auch gleich bei «ren » und beim ersten «.jpg » mit hinein nehmen, solange die Reihenfolge stimmt. Die Formel können Sie jetzt ganz normal in der Spalte C herunterkopieren. Da verkettet Excel für Sie den erforderlichen Befehl für jede einzelne Datei.
Da steht jeweils ein Anführungszeichen zuviel! Und das mit Absicht, sonst liefert Excel einen Fehler. Das liegt daran, dass Excel Anführungszeichen meist als Teil der Befehlssyntax betrachtet. Wenn Sie die Anführungszeichen in der tatsächlich benötigten Anzahl eintippen, sehen Sie sich mit einer Fehlermeldung konfrontiert. Wollen Sie ihm ein Anführungszeichen als Text schmackhaft machen, müssen Sie es verdoppeln. Man nennt das auch «maskieren» oder «escapen».
Starten Sie nun nebenher den Texteditor Notepad. Markieren Sie in Excel exakt die Zellen mit den zusammengefügten «ren»-Befehlen und kopieren Sie sie (z.B. per Tastenkombination Ctrl+C). Wechseln Sie zum Notepad und fügen Sie die Befehle ein (Ctrl+V). Schon erscheinen die Befehle, Zeile für Zeile. 
Die aus Excel kopierten Befehlszeilen
Jetzt gehts in Notepad zu Datei/Speichern unter. Zwei wichtige Dinge: Erstens enthalten die Befehle keine Pfadangaben. Sie müssen die Batchdatei also direkt in den Ordner speichern, der die umzutaufenden Bilder (bzw. jetzt die Arbeitskopien der Bilder) enthält. Zweitens müssen Sie darauf achten, dass Notepad der Datei die richtige Endung (.bat) verpasst. Wählen Sie also im «Speichern unter»-Fenster zuerst den Ordner mit den Bildern. Nun gehts unten zu «Dateityp». Greifen Sie da zu «Alle Dateien (*.*)». Geben Sie der Datei nun einen Namen mit Endung .bat - zum Beispiel umtaufen.bat - und klicken Sie auf Speichern.
Öffnen Sie den Bilderordner und doppelklicken Sie auf die darin aufgetauchte Datei umtaufen.bat. Die wird nun ausgeführt und wird alle Bilder umbenennen. Falls in der Arbeitskopie des Ordners alles geklappt hat, haben Sie die Wahl: Entweder verschieben Sie die jetzt umgetauften Bilder dorthin, wo Sie sie brauchen oder Sie verschieben die Batchdatei in Ihren «richtigen» Bilderordner und führen sie dort nochmals aus. (PCtipp-Forum)



Kommentare
Avatar
slup
26.08.2013
... es funktioniert (bei mir) nur, wenn weder der alte noch der neue Dateiname einen Leerschlag drin hat. ... Wenn es Leerschläge in den Dateinamen hat, musst du die Namen mit Anführungszeichen 'umrahmen', also: ren "quelle 1.txt" "ziel 1.txt"

Avatar
Masche
28.08.2013
Anstelle von (beispielsweise) =Verketten(A1;B1)kann auch =A1&B1 geschrieben werden. Dieser Befehl ist genau um Verketten() kürzer, also ist meines Erachtens Verketten() völlig überflüssig, weshalb ich selber immer die zweite Version verwende ("In der Kürze liegt die Würze"). Obwohl FreeRider in seinem Beitrag diese Syntax verwendet hat, wird im Kummerkastenartikel nur die erste Version erwähnt: =VERKETTEN("ren";" ";A2;".jpg";" ";B2;".jpg" Gibt es einen Grund dafür? Ich habe bisher noch keinen Nachteil gesehen, auf Verketten() zu verzichten. PS: In der Formel im Kummerkastenartikeltext fehlt übrigens noch die abschliessende Klammer (siehe auch Zitat oben).

Avatar
Gaby Salvisberg
29.08.2013
Inputs - plus ESC-Zeichen-Problematik - ergänzt.