Batch Ordnernamen umbenennen von tt.mm.yy zu yy.mm.tt

germantobi

Cadet 3rd Year
Registriert
Juni 2014
Beiträge
33
Hallo zusammen,

ich hab ein kleines Archiv das immer weiter wächst.
Bisher hatte ich ohne nachzudenken die Ordner immer nach tt.mm.yy benannt.
Zum sortieren und wiederfinden ist das aber mist, vorallem wenn es immer mehr wird.

Nun habe ich mir gedacht, es müsste doch möglich sein diese automatisch umzubenennen.,
also von tt.mm.yy zu yy.mm.tt (z.B. 11.02.13 zu 13.02.11).

Wäre echt super wenn jemand der sich damit auskennt mal kurz was zaubern könnte ^^
Dachte eben mit Batch wärs am einfachsten.

Liebe Grüße
 
Unter Linux:

mmv installieren, und dann
mmv *.*.* #3.#2.#1

Falls kein Linux vorhanden, cygwin installieren.
 
Ich hätte vielleicht wirklich sagen sollen das ich Windows 7 habe.
Gegen eine Softwarelösung bin ich auch nicht, aber freeware sollte es trotzdem sein.
 
@ mr hyde: Echt jetz? Für ne Umbenennung gleich ne Cygwin Installation heranziehen? Zumal das System extrem kranken wird (ohne es getestet zu haben).
Code:
mmv - move/copy/append/link multiple files by wildcard patterns
Also viel Spaß bei Dateien und Ordnern, welche mindestens zwei Punkte beinhalten bzw. eher einer mit Dateierweiterung...

@ germantobi: Warum das Jahr in zwei Stellen? Natürlich nur ungenügend getestet:
Code:
@echo off
setlocal enabledelayedexpansion

for /f "delims=" %%d in ('dir ??.??.?? /S /AD') do (
        set name=%%~nd%%~xd

        set day=!name:~0,2!
        set month=!name:~3,2!
        set year=!name:~6,2!

        echo day !day!
        echo month !month!
        echo year !year!

        ren "%%d" !year!.!month!.!day!
        echo %%d
        echo --^> !year!.!month!.!day!
)
pause
In den entsprechenden Ordner schmeißen, ausführen und dort sucht er sich alle Ordner mit dem entsprechenden Muster raus und dreht die Formate um.
 
Hört sich schonmal sehr gut an, aber habs getestet und hat irgendwie nicht funktioniert:

Code:
day  D
month te
year tr
Syntaxfehler.
 Datenträger in Laufwerk C: ist System
--> tr.te. D
day  V
month lu
year es
Syntaxfehler.
 Volumeseriennummer: 48CE-C419
--> es.lu. V
day te
month t
year
Die Syntax für den Dateinamen, Verzeichnisnamen oder die Datenträgerbezeichnung
ist falsch.
 Verzeichnis von C:\Users\????\Desktop\test
--> .t.te
day 25
month 07
year 20
Das System kann die angegebene Datei nicht finden.
25.07.2014  10:52    <DIR>          .
--> 20.07.25
day 25
month 07
year 20
Das System kann die angegebene Datei nicht finden.
25.07.2014  10:52    <DIR>          ..
--> 20.07.25
day 25
month 07
year 20
Das System kann die angegebene Datei nicht finden.
25.07.2014  10:51    <DIR>          01.02.13
--> 20.07.25
day 25
month 07
year 20
Das System kann die angegebene Datei nicht finden.
25.07.2014  10:52    <DIR>          02.03.14
--> 20.07.25
day
month
year
Syntaxfehler.
               0 Datei(en),              0 Bytes
-->   .  .
day 01
month 02
year 13
Die Syntax für den Dateinamen, Verzeichnisnamen oder die Datenträgerbezeichnung
ist falsch.
 Verzeichnis von C:\Users\????\Desktop\test\01.02.13
--> 13.02.01
day 25
month 07
year 20
Das System kann die angegebene Datei nicht finden.
25.07.2014  10:51    <DIR>          .
--> 20.07.25
day 25
month 07
year 20
Das System kann die angegebene Datei nicht finden.
25.07.2014  10:51    <DIR>          ..
--> 20.07.25
day
month
year
Syntaxfehler.
               0 Datei(en),              0 Bytes
-->   .  .
day 02
month 03
year 14
Die Syntax für den Dateinamen, Verzeichnisnamen oder die Datenträgerbezeichnung
ist falsch.
 Verzeichnis von C:\Users\????\Desktop\test\02.03.14
--> 14.03.02
day 25
month 07
year 20
Das System kann die angegebene Datei nicht finden.
25.07.2014  10:52    <DIR>          .
--> 20.07.25
day 25
month 07
year 20
Das System kann die angegebene Datei nicht finden.
25.07.2014  10:52    <DIR>          ..
--> 20.07.25
day
month
year
Syntaxfehler.
               0 Datei(en),              0 Bytes
-->   .  .
day
month
year nz
Syntaxfehler.
     Anzahl der angezeigten Dateien:
--> nz.  .
day
month
year
Syntaxfehler.
               0 Datei(en),              0 Bytes
-->   .  .
day
month
year
Syntaxfehler.
               8 Verzeichnis(se), 380.221.739.008 Bytes frei
-->   .  .
Drücken Sie eine beliebige Taste . . .
 
Füg mal den /B Parameter hinzu.
Code:
@echo off
setlocal enabledelayedexpansion

for /f "delims=" %%d in ('dir ??.??.?? /S /AD') do (
        set name=%%~nd%%~xd

        set day=!name:~0,2!
        set month=!name:~3,2!
        set year=!name:~6,2!

        echo %%d
        echo --^> !year!.!month!.!day!
        ren "%%d" !year!.!month!.!day!
)
 
Zuletzt bearbeitet: (Layout korrigiert...)
Yuuri schrieb:
Füg mal den /B Parameter hinzu.
Code:
@echo off
setlocal enabledelayedexpansion

for /f "delims=" %%d in ('dir ??.??.?? /S /AD') do (
        set name=%%~nd%%~xd

        set day=!name:~0,2!
        set month=!name:~3,2!
        set year=!name:~6,2!

        echo %%d
        echo --^> !year!.!month!.!day!
        ren "%%d" !year!.!month!.!day!
)

Ich hab leider keine Ahnung wo du meinst das ich den "/B Parameter" hinzufügen soll?

Es funktioniert jedenfalls immernoch nicht:

Code:
 Datenträger in Laufwerk C: ist System
--> tr.te. D
Syntaxfehler.
 Volumeseriennummer: 48CE-C419
--> es.lu. V
Syntaxfehler.
 Verzeichnis von C:\Users\????\Desktop\test
--> .t.te
Die Syntax für den Dateinamen, Verzeichnisnamen oder die Datenträgerbezeichnung
ist falsch.
25.07.2014  10:52    <DIR>          .
--> 20.07.25
Das System kann die angegebene Datei nicht finden.
25.07.2014  10:52    <DIR>          ..
--> 20.07.25
Das System kann die angegebene Datei nicht finden.
25.07.2014  10:51    <DIR>          01.02.13
--> 20.07.25
Das System kann die angegebene Datei nicht finden.
25.07.2014  10:52    <DIR>          02.03.14
--> 20.07.25
Das System kann die angegebene Datei nicht finden.
               0 Datei(en),              0 Bytes
-->   .  .
Syntaxfehler.
 Verzeichnis von C:\Users\????\Desktop\test\01.02.13
--> 13.02.01
Die Syntax für den Dateinamen, Verzeichnisnamen oder die Datenträgerbezeichnung
ist falsch.
25.07.2014  10:51    <DIR>          .
--> 20.07.25
Das System kann die angegebene Datei nicht finden.
25.07.2014  10:51    <DIR>          ..
--> 20.07.25
Das System kann die angegebene Datei nicht finden.
               0 Datei(en),              0 Bytes
-->   .  .
Syntaxfehler.
 Verzeichnis von C:\Users\????\Desktop\test\02.03.14
--> 14.03.02
Die Syntax für den Dateinamen, Verzeichnisnamen oder die Datenträgerbezeichnung
ist falsch.
25.07.2014  10:52    <DIR>          .
--> 20.07.25
Das System kann die angegebene Datei nicht finden.
25.07.2014  10:52    <DIR>          ..
--> 20.07.25
Das System kann die angegebene Datei nicht finden.
               0 Datei(en),              0 Bytes
-->   .  .
Syntaxfehler.
     Anzahl der angezeigten Dateien:
--> nz.  .
Syntaxfehler.
               0 Datei(en),              0 Bytes
-->   .  .
Syntaxfehler.
               8 Verzeichnis(se), 380.219.478.016 Bytes frei
-->   .  .
Syntaxfehler.
Drücken Sie eine beliebige Taste . . .
 
Ach verdammt, das falsche in der Zwischenablage gehabt...
Code:
@echo off
setlocal enabledelayedexpansion

for /f "delims=" %%d in ('dir ??.??.?? /S /B /AD') do (
        set name=%%~nd%%~xd

        set day=!name:~0,2!
        set month=!name:~3,2!
        set year=!name:~6,2!

        echo %%d
        echo --^> !year!.!month!.!day!
        ren "%%d" !year!.!month!.!day!
)
 
bei 'dir ??.??.?? /S /AD' ein /B zufügeun

Code:
'dir ??.??.?? /B /S /AD'

edit:
2 slow...
 
Hervorragend. Funktioniert.
Jetzt hab ich endlich wieder Ordnung :volllol:
 
@germantobi:
Super, dass das geklappt hat. :-)

@yuuri:
Eine cygwin Installation (die auch in 10 Min erledigt ist) kann man für 1000 Sachen immer wieder gut gebrauchen, nicht nur fürs Umbenennen :-)

Verstehe aber den Rest nicht so ganz: Wieso meinst du, dass das System "kranken" wird (noch dazu, ohne es selbst getestet zu haben)?
Wieso sollen bei mehreren Punkten im Dateinamen Probleme entstehen?

Ich nutze mmv seit Jahren auch und gerade in Zusammenhang mit vielen Punkten ohne Probleme. Mit der von mir angegebenen Mini-Codezeile ließe sich das vorgestellte Problem ganz einfach lösen (ist ja nun aber nicht mehr nötig).
 
mr hyde schrieb:
Verstehe aber den Rest nicht so ganz: Wieso meinst du, dass das System "kranken" wird (noch dazu, ohne es selbst getestet zu haben)?
Wieso sollen bei mehreren Punkten im Dateinamen Probleme entstehen?
Weil bei deiner Lösung bspw. Dateien inkludiert werden und Elemente wie Element.Challenge.Gbx, Element.java.svn-base, das.ist.ein.test.mit.vielen.vielen.punkten.txt oder aber auch .test. betroffen wären bzw. würde selbst ein ".." matchen. *.*.* ist viel zu allgemein gehalten, da hierbei nur zwei Punkte matchen müssen und insofern du nicht sicherstellen kannst bzw. der TE (der davon keine Ahnung hat) dies sicherstellen müsste.
 
Zurück
Oben