Mehrfach-Umbenenn-Tool Verzeichnisnamen mit Datum [gelöst]

German support forum

Moderators: white, Hacker, Stefan2

Post Reply
User avatar
mausebär
Member
Member
Posts: 184
Joined: 2008-03-25, 13:30 UTC
Location: Near Munich / Bavaria / Germany

Mehrfach-Umbenenn-Tool Verzeichnisnamen mit Datum [gelöst]

Post by *mausebär »

Ich will eine Anzahl von Verzeichnissen umbenennen. Die Verzeichnisse enthalten Datumsangaben in der Form TT.MM.JJJJ
Diese möchte ich herausfiltern und im Verzeichnisnamen in das Format JJJJ-MM-TT umwandeln, um die Verzeichnisse datumsmäßig sortieren zu können. Beispiel weiter unten.

Ich hab das mit [N#-#]Teil probiert.
Jedoch erkennt die Funktion den ersten Punkt als Delimiter zu einem Suffix, es werden mir nur die Zeichen um den Punkt herum zur Änderung angeboten.

Beispiel eines Verzeichnisnamens vorher:
DN 20.03.2018 Löwls Herzensprojekt
gewünscht nachher:
DN 2018-03-20 Löwls Herzensprojekt

Angeboten wird nur "DN 20.03"

Wie könnte ich das machen?

Vielen Dank für eure Unterstützung.
Last edited by mausebär on 2018-03-23, 08:59 UTC, edited 1 time in total.
User avatar
HolgerK
Power Member
Power Member
Posts: 5406
Joined: 2006-01-26, 22:15 UTC
Location: Europe, Aachen

Post by *HolgerK »

RegEx im MUT:

Suchen nach:

Code: Select all

(\d\d)\.(\d\d)\.(\d\d\d\d)
Ersetzen durch:

Code: Select all

$3-$2-$1
[x] [E]
[x] RegEx

Alle andere auf Defaulteinstellungen belassen.

Gruss
Holger
Make our planet great again
User avatar
mausebär
Member
Member
Posts: 184
Joined: 2008-03-25, 13:30 UTC
Location: Near Munich / Bavaria / Germany

Post by *mausebär »

Vielen Dank. Es funktioniert...
...aber ich hab mich noch nie mit RegEx beschäftigt, darum kapiere ich momentan noch nicht warum es funktioniert...
User avatar
HolgerK
Power Member
Power Member
Posts: 5406
Joined: 2006-01-26, 22:15 UTC
Location: Europe, Aachen

Post by *HolgerK »

Reguläre Ausdrücke mache so etwas wie eine Mustersuche.
Das Muster wird in diesem Fall mit "(\d\d)\.(\d\d)\.(\d\d\d\d)" beschreiben.

Jede Klammer () bildet dabei einen Teilausdruck.

Auf die Fundstellen von jedem Teilausdruck kann man mit den Platzhaltern $1 . . $3 später zugreifen und diese dann in einer anderen Reihenfolge anordnen: "$3-$2-$1" und damit dann das gefunden Muster ersetzen lassen.

\d steht für : eine Ziffer
\d\d steht für : zwei aufeinander folgende Ziffern
\d\d\d\d steht für : vier aufeinander folgende Ziffern
\. steht für : ein Punkt

"(\d\d)\.(\d\d)\.(\d\d\d\d)" bedeutet also:
Finde eine Folge von
- Zweistellige Zahl
- gefolgt von einem Punkt
- gefolgt von einer weiteren zweistelligen Zahl
- gefolgt von einem Punkt
- gefolgt von einer vierstelligen Zahl
Die unterstrichenen Stellen sind die Teilausdrücke.

Drück einfach F1 im MUT und folge dem Link reguläre Ausdrücke.
Dort findest du weitere Erklärungen, insbesondere zu den verschiedenen Metazeichen wie \d oder \.

Gruss
Holger
Make our planet great again
User avatar
mausebär
Member
Member
Posts: 184
Joined: 2008-03-25, 13:30 UTC
Location: Near Munich / Bavaria / Germany

Post by *mausebär »

Perfekt.
Vielen dank für deine Hilfe und die Erklärung.

Gruß
Wolfgang
Der Teufel schläft nie...
User avatar
mausebär
Member
Member
Posts: 184
Joined: 2008-03-25, 13:30 UTC
Location: Near Munich / Bavaria / Germany

Post by *mausebär »

...jetzt fällt mich doch noch etwas ein zu dem Thema:

Wie müßte ich parametrieren, wenn ich das irgendwo im Ordner- oder Dateinamen gefundene Datum umwandeln und gleich an den Anfang stellen will...?
Der Teufel schläft nie...
User avatar
HolgerK
Power Member
Power Member
Posts: 5406
Joined: 2006-01-26, 22:15 UTC
Location: Europe, Aachen

Post by *HolgerK »

Z.B. mit (für den Fall dass das Datum von Leerzeichen umgeben ist):
Suchen nach:

Code: Select all

(.*) (\d\d)\.(\d\d)\.(\d\d\d\d) (.*)
Ersetzen mit:

Code: Select all

$4-$3-$2 $1 $5
(.*) : beliebige Folge von Zeichen

Die erste Fundstelle $1 enthält dann alles (bis auf das Leerzeichen) vor dem Datum.
Die Bestandteile des Datums sind dadurch jeweils eine Nummer höher: $4-$3-$2
Die letzte Fundstelle $5 enthält dann alles (bis auf das Leerzeichen) hinter dem Datum.

Gruss
Holger
Make our planet great again
User avatar
mausebär
Member
Member
Posts: 184
Joined: 2008-03-25, 13:30 UTC
Location: Near Munich / Bavaria / Germany

Post by *mausebär »

...genial...
Ich glaub, ich muß mich damit näher befassen...

Vielen Dank!
User avatar
mausebär
Member
Member
Posts: 184
Joined: 2008-03-25, 13:30 UTC
Location: Near Munich / Bavaria / Germany

Post by *mausebär »

...jetzt muß ich mich nochmal melden, es funktioniert plötzlich nicht mehr...
[img]https://www2.pic-upload.de/img/35303275/Warumfunktioniertdasnicht.jpg[/img]

Kann mir jemand sagen, was ich da falsch gemacht habe...?
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 48012
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

In der zweiten Klammer steht d\d\ statt \d\d .
Author of Total Commander
https://www.ghisler.com
User avatar
mausebär
Member
Member
Posts: 184
Joined: 2008-03-25, 13:30 UTC
Location: Near Munich / Bavaria / Germany

Post by *mausebär »

... Oh Sch...

Vielen Dank
Der Teufel schläft nie...
Post Reply