4.1k Aufrufe
Gefragt in SW-Sonstige von tomschi Mitglied (879 Punkte)
Hi!

Ich bin auf der Suche nach einer Möglichkeit zum
Umbennen von diversen Dateien lt. einer Liste.
Beispiel:
Test01.pdf --> Versuch01.pdf
Test02.pdf --> Versuch12.pdf
Test03.pdf --> Versuch77.pdf

Kann mir da jemand helfen?

Ciao

Tom

9 Antworten

0 Punkte
Beantwortet von kjg17 Profi (34.4k Punkte)
Hallo Tom,

so richtig verstehe ich nicht, was du mit 'lt. einer Liste' meinst.

Zu solchen Umbenennungen benutze ich z.B. (Klick-->) Joe, damit kannst du in Dateinamen u.a. auch 'Test' durch 'Versuch' ersetzen lassen. Die Dateien sind dazu vorher in ein Umbenennungsfenster zu ziehen.

Sind die Dateien recht unübersichlich in mehreren Ordnern verteilt, kann man die Umbenennung z.B. mit dem Flexible Renamer vornehmen. Dieses Tool bietet noch mehr Funktionen als Joe und kann über mehrere Verzeichnisse selbst nach den umzubenenneden Dateien suchen. Man muss allerdings aufpassen, dass nicht auch andere Dateien umbenannt werden, in denen ein bestimmter Text-String zufällig ebenfalls vorkommt.

Gruß
Kalle
0 Punkte
Beantwortet von tomschi Mitglied (879 Punkte)
Hallo Kalle!

Vielen Dank, dass Du Dich meinem Problem angenommen hast.

Ich verwende normalerweise das Bulk Rename Utility.
Test durch Versuch zu ersetzen ist kein Problem, jedoch habe
eine unbestimmte Anzahl von pdf-Dateien.
Diese heissen Datei01, Datei02, Datei03, ...

Nunmehr muss ich aber damit in einem anderen Programm weiterarbeiten und dieses kann mit der Bezeichnung aber nicht
richtig weiterarbeiten.

Daher muss ich z. B. die Datei01.pdf in 1001-Datei.pdf bzw. Datei02.pdf in 5003-Datei.pdf umbennen.

Da ich weiss, dass die Datei01 immer 1001-Datei bzw. Datei02 immer 5003-Datei entspricht, wollte ich den Umbenennungvorgang
gemaess "einer Liste" abarbeiten lassen.

Hoffe, jetzt ist alles klar.

Ciao

Tom
0 Punkte
Beantwortet von rahi Experte (1.5k Punkte)
Hallo Tom,

wenn die Umbenennung nach so festen Regeln erfolgt, dann nimm deine Liste (ich gehe mal von einem Textfile aus) und erzeuge daraus eine Datei (umbenennen.bat) mit:

ren Datei01.pdf 1001-Datei.pdf
ren Datei02.pdf 5003-Datei.pdf
usw.

Da sich aus der Quelldatei nicht die Zieldatei ableiten lässt, benötigst du so oder so eine Mappingtabelle, dann kannst du auch gleich noch "ren" (oder copy) davorstellen. Oder gibt es etwa eine Abbildungslogik?

Gruß
Ralf
0 Punkte
Beantwortet von kjg17 Profi (34.4k Punkte)
Hallo Tom,

ich verstehe es immer noch nicht so richtig, hast du zig verschiedene Ordner, in denen Dateien mit identischer Bezeichnung liegen? Dann wird das auch mit dem o.a. ren(ame) eine mächtige Fummelei.

Leider kenne ich Bulk Rename nicht, kann also nicht einschätzen, was damit möglich ist.

Zu Joe mal eine kleine Erläuterung mit (Klick-->) Bild.

Im ersten Schritt wird eine Umbenennungsmaske erstell um die Ziffern an den Anfang des Dateinamens zu holen.
[6-7]-[1-4][8-].[TYP] aus dem Beispiel bedeutet:
- 6. bis 7. Zeichen des Dateinamens an den Anfang stellen
- danach einen Bindestrich einfügen
- danach den 1. bis 4. Zeichen des Dateinamens einfügen
- danach alle ab dem 8. Zeichen

Das zu erwartende Ergebnis kannst du in der Spalte 'Neuer Name' begutachten, bevor du auf 'Übernehmen' klickst.

Im zweiten Schitt ziehts du die so umbenannten Dateien wieder in 'Joe', lässt aber die Maske auf der Voreinstellung [NAME].[TYP]. Dafür macht du jetzt bei 'Ersetze' und 'durch' deine entsprechenden Vorgaben. Im Beispiel soll '01-' durch '1001-' werden, du könntest aber sicherheitshalber auch '01-Dat' durch '1001-Dat' ersetzen lassen, falls der Fall möglich ist, dass '01-' in irgendeinem Dateinamen auch an andere Stelle existieren kann. Wie im Bild zu sehen ist, wird nur für die Dateien, auf die 'Ersetze' zutrifft ein neuer Name angezeigt. Anschließen ziehst du die noch nicht umbenannten Dateien wieder in 'Joe' und lässt sie mit '02-' und '5002' durchlaufen, usw.

In dem Beispiel bin ich von Dateinamen ausgegangen, die länger sind als von dir angegeben und noch Namensbestandteile enthalten, die unverändert bleiben sollen (siehe [8-]).

Sollten die Dateien tatsächlich mit identsichen Namen in verschiedenen Ordnern existieren, kannst du sie von dort alle in 'Joe' ziehen, sie werden ja nicht tatsächlich bewegt, sondern nur Verknüpfungen erstellt. Die Umbenennung erfolgt dann in den verschiedenen Ordnern.

Gruß
Kalle
0 Punkte
Beantwortet von tomschi Mitglied (879 Punkte)
Hi Kalle!

Herzlichen Dank für den tollen Support.
Meine umzubenennenden Dateien liegen alle im selben Ordner.

Das Zerschneiden des Dateinamens und anschließende Zusammensetzen laut Vorgabe ist kein Problem für mich.
Das Problem dabei ist, dass ein Teil des zukünftigen Dateinamens ähnlich einem sverweis in Excel aus einer "Liste" (txt, xls, ...-Datei) herausgesucht werden soll.

Ich habe dazu mal im Excel ein Muster erstellt.
www.file-upload.net/download-1648500/Muster.xls.html

Vielleicht wird es so klarer.

Tom
0 Punkte
Beantwortet von kjg17 Profi (34.4k Punkte)
Hallo Tom,

hier deine von mir erweiteret Datei --> Muster_2.xls, die die Sache recht einfach macht.

Zunächst habe ich in Spalte 'E' den Pfad zu den Dateien angelegt und in Spalte 'F' die Datei-Extension.
Dann habe ich zunächst die Dateinamen über die Verketten-Funktion um die fehlende Extension erweitert.
Anschließend wieder über die Verketten-Funktion in Spalte 'I' die vollständigen umbenennungsbefehle erstellt.
Diese dann über Kopieren / Werte einfügen in die Spalte 'J' kopiert.

Die Spalte 'F' kopierts du komplett in den 'Editor', löscht die erste Zeile mit der Spaltenüberschrift und speicherst die ganze Sache als Umbenenn.bat ab. Jetzt nur noch ein Doppelklick darauf und die Dateien werden nach deinen Wünschen umbenannt.

Die vollständigen Pfadangaben in 'E' kannst du entsprechend deiner Erfordernisse ändern und die neuen Befehle Aus 'I' nach 'J' mit Werte einfügen kopieren.

Gruß
Kalle
0 Punkte
Beantwortet von tomschi Mitglied (879 Punkte)
Guten Morgen Kalle!

Hm, Du meinst also ich solle die "Umbenennung" in Excel durchführen, dann die Werte in eine bat-Datei kopieren und abschließend ausführen?

Ist in der Tat ein Lösungsansatz.
Spalte "F" in den Editor kopieren? --> Extension = ???

Schöner wäre natürlich wenn ein Programm auf eine "Liste" zugreifen könnte. Ich werde mir Deinen Vorschlag durch den
Kopf gehen lassen.

Vielen Dank für Deine Unterstützung!

Tom
0 Punkte
Beantwortet von kjg17 Profi (34.4k Punkte)
Moin Tom,

Extension = Dateinamenserweiterung hinter dem Punkt, die das Format einer Datei kennzeichnet. In der Registry ist zu diesen Extensionen dann hinterlegt, mit welchen Programmen die Datei zu öffnen ist.

Zur Umbenennung mit Ren(ame) muss neben der Pfadangabe der Dateiname vollständig angegeben, bzw. für den Befehl nicht relevante Teile des Namens durch Jokerzeichen ersetzt werden. In deinem Fall würde allerdings ren Datei1*.* 5021-Datei*.* dazu führen, dass Datei10 bis Datei19 zu 5021-Datei0 bis 5021-Datei9 umbenannt würden.

Das mit der Spalte 'F' war natürlich ein Tippfehler und das vorherige Kopieren mit 'Werte einfügen' von 'I' nach 'J' ist auch überflüssig, da beim Kopieren in den Editor ohnehin nur die sichtbaren Werte übernommen werden und nicht, wie in Excel selbst, die Formeln.

Ich hab dir nochmal eine Muster_3.xls hochgeladen, die etwas anders aufgebaut ist.

Die Erstellung der zu kopierenden Befehle erfolgt jetzt auf dem gesonderten Arbeitsblatt 'Batch' und es wird sich auch nur noch auf die reinen Ziffernangaben in Spalte A und B in dem Arbeitsblatt 'Muster' bezogen. Die Änderung des Textteiles der Dateinamen erfolgt auf dem Arbeitsblatt 'Batch' durch entsprechende Vorgaben in A2 und B2, das Ergebnis siehst du dann in den Spalten 'E' und 'F'.

In der Spalte 'G' stehen die zu kopierenden Befehle.

Auch wenn deine Dateien nicht wirklich 'Datei...', heißen, in Muster_3 mal mit der Verwendung von 'Data' verdeutlicht, kannst du mit dieser Tabelle mit lediglich vier Eingaben in den Felden mit roter Schrift die Befehle für deine *.bat erstellen. Ein entsprechendes Umbenennungs-Script, zu erstellen, welches sich die Angaben aus der gleichen Excel-Tabelle holt, dürfte wesentlich komplizierter sein.

Gruß
Kalle
0 Punkte
Beantwortet von tomschi Mitglied (879 Punkte)
Mahlzeit!

Danke, dass Du mich bei meinem Problem so unterstützt.
Jetzt ist mir gerade eingefallen, dass man sich den Weg über eine bat-Datei möglicherweise sparen kann.

Per Excel (= Datenquelle) kann man sicherlich direkt via VBA die
in der Folge erzeugten pdf-Dateien umbenennen.

Vielleicht benötige ich ja in der Folge noch die Hilfe der
"Excelaner".

Ciao

Tom
...