Mehrfachumbenennung von Fotos rückgängig machen (MUT)

German support forum

Moderators: white, Hacker, Stefan2

Post Reply
User avatar
tuska
Power Member
Power Member
Posts: 3760
Joined: 2007-05-21, 12:17 UTC

Mehrfachumbenennung von Fotos rückgängig machen (MUT)

Post by *tuska »

Wie müßte ich es anstellen, um folgende Umbennung in einem Schritt zu erreichen:
(Achtung: Gemeint ist hier nicht der "Rückgängig"-Button, den man nach nochmaligem Aufruf des Mehrfach-Umbenenn-Tools (MUT) ausführen kann!)

Code: Select all

VORHER:  20170112_14.17.56_P1060736_Testfoto.JPG 
	       "_Testfoto" -> die Zeichenanzahl kann variabel sein oder es gibt nach der Foto-Nr. P1060736 keinen Text
	       ODER nur
	       20170112_14.17.56_P1060736.JPG

NACHHER: P1060736.JPG  (Ursprünglicher Dateiname der vom Fotoapparat erzeugt wurde)
Begründung:
1. IdR benenne ich sämtliche Fotos nach obigem Muster um ([=exif.Originaldatum.YMD]_[=exif.TimeOriginal.h.m.s]_[N]):
JJJJMMTT_HH.MM.SS_FOTO-NR_eventuell noch nachfolgender Text (mit oder ohne Bindestriche)
und speichere sie auf dem PC ab
2. Wenn ich aus irgendeinem Grund jedoch vom PC Fotos wieder auf den Fotoapparat kopiere,
dann kann der Fotoapparat (wegen erfolgter Umbenennung der Fotos) diese nicht mehr lesen

Umbenennmaske: Dateiname ... [N19-] LINKS Zeichen entfernen ...
nimmt mir zB "20170112_14.17.56_" vor der Foto-Nr. P1060736 weg.
IdF muß ich vorher die Dateien jedoch schon filtern.

Umbenennmaske: Dateiname ... [N1--10] RECHTS ZEICHEN entfernen ...
nimmt mir zB "_Testfoto" vom Foto 20170112_14.17.56_P1060736_Testfoto.JPG weg.
IdF muß ich vorher die Dateien ebenfalls vorher schon filtern.
Wenn es einen anderen Text nach der Foto-Nr. gibt oder gar keinen, dann passt dieser Wert nicht mehr.

Gibt es hier eine Lösung bei welcher man die Zeichentfernung (links/rechts) auch bei variablen Dateinamen
(mit Teilstruktur wie oben unter "VORHER" angegeben) mit einer einzigen Umbenennung erledigen könnte?


Für die Unterstützung bzw. Antwort auf meine Frage bedanke ich mich schon im voraus.
Gruß,
Karl
User avatar
Stefan2
Power Member
Power Member
Posts: 4159
Joined: 2007-09-13, 22:20 UTC
Location: Europa

Post by *Stefan2 »

Da kannst du mit Regular Expressions (Mustererkennung) arbeiten.

Dazu benötigst du feste "Ankerpunkte", etwa
"Alles nach dem ersten Unterstrich nach einer Ziffer,
bis zum einem weiteren Unterstrich || oder dem Punkt vor der Erweiterung"

zB:

Alles nach Ziffer-Unterstrich UND // ab "P" alles was kein Unterstrich ist UND // gefolgt von etwas oder nicht bis zum Ende:

Suche: .+\d_(P[^_]+).*
Ersetze: $1
[_]E
[x]RegEx


Das ist ein einfaches Muster, hier kann (sollte) man ein gezielteres (Fehler vermeidenderes) Muster verwenden,
dieses wiederum basiert auf deine tatsächlichen Dateinamen.



- - -


Und wie immer, ein paar Vorher/Nachher Beispiele zum einfachen Verstehen (und Kopieren mit Austesten) wären sinnvoll.

zB:

VON:
20170112_14.17.56_P1060736_Testfoto.JPG
xx_Xx_XX2017_PoriginalerName1_yyyy.png
xx_Xx_XX2017_PoriginalerName2.png
ZU:
P1060736.JPG
PoriginalerName1.png
PoriginalerName2.png




HTH?
User avatar
Stefan2
Power Member
Power Member
Posts: 4159
Joined: 2007-09-13, 22:20 UTC
Location: Europa

Post by *Stefan2 »

Gerade bemerkt, dass geht ja (für deinen Fall) auch einfacher:

VON:
20170112_14.17.56_P1060736_Testfoto.JPG
20170112_14.18.36_P1060737.JPG
20170112_14.18.56_P1060738_Testfoto.JPG
20170112_14.19.12_P1060739.JPG

ZU:
P1060736.JPG
P1060737.JPG
P1060738.JPG
P1060739.JPG


Suche: (P\d{7}) ..........oder treffender: _(P\d{7})_?, noch genauer: _(P\d{7})_?.*|$
Ersetze: $1
[_]E
[x]RegEx
[x]Subst.



 
User avatar
tuska
Power Member
Power Member
Posts: 3760
Joined: 2007-05-21, 12:17 UTC

Gelöst (2 perfekte Lösungen vorhanden)

Post by *tuska »

Stefan2
Dieser Code von Dir ist perfekt für mich(!)

Code: Select all

Umbenennmaske: Dateiname ..........: [N]
Erweiterung .......................: [E]
Suchen && Ersetzen | Suchen nach ..: (P\d{7})
Suchen && Ersetzen | Ersetzen durch: $1
RegEx .............................: Haken gesetzt
Subst. ............................: Haken gesetzt
Getestet mit diesen Varianten:
P1060860.JPG
20170225_16.35.12_P1060846.JPG
20170302_08.53.36_P1060875_Eichkätzchen.JPG
20170302_08.53.36_P1060875_Eichkätzchen_holt sich Vogelfutter.JPG
ABC_20170225_16.36.03_P1060847.JPG
ABC_ abc 20170225_16.36.03_P1060847.JPG

-----------------------------------------------------------------
Ebenso ist der hier von Dir genannte Code perfekt: http://ghisler.ch/board/viewtopic.php?p=325825#325825
Getestet mit den vorher genannten Varianten.
-----------------------------------------------------------------

Code: Select all

...oder treffender: _(P\d{7})_?, noch genauer: _(P\d{7})_?.*|$
Dieser Code funktioniert fast genau so gut.
Er hat nur den einzigen Nachteil, dass er bei einem Foto mit Dateinamen, zB P1060860.JPG nur mehr .JPG übrig lässt.
D.h. wenn mehrere Dateien oder alle in einem Verzeichnis markiert sind und es ist nur eine einzige Datei vorhanden,
die nicht umbenannt werden soll und die ich übersehen habe, dann wird der Bildname "P1060860" entfernt.

Die Fotos können nach dieser erneuten Umbenennung wieder auf der Kamera angezeigt werden.
Somit nochmals herzlichen Dank für Deine prompten Bemühungen!
Gruß,
Karl
User avatar
Stefan2
Power Member
Power Member
Posts: 4159
Joined: 2007-09-13, 22:20 UTC
Location: Europa

MUT: extrahiere gewünschtes Teil mitten aus alten Namen

Post by *Stefan2 »

tuska wrote:....
Er hat nur den einzigen Nachteil, dass er bei einem Foto mit Dateinamen, zB P1060860.JPG nur mehr .JPG übrig lässt.
....
Ah, verstehem dass habe ich nicht bedacht, (War auch nicht in deiner Aufgabenstellung erwähnt, habeichzumindestnichtgesehen, und daher auch mein Wunsch, möglichst alle möglichen Dateinamenvarianten als Vorher/Nachher Beispiel anzugeben, wiejetztindeinemletztenposting)

Also müssten wir auch den Unterstrich am Anfang optional machen:
Suche: _?(P\d{7})_?.*|$

Aber das nur der Vollständigkeit-halber, '(P\d{7})' passt ja bereits für dich.


Danke fürs Feedback.
Post Reply