1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

per Batch Ordner iterieren, nach Timestamp sortieren

Discussion in 'Programmieren' started by bieri87, Jun 19, 2009.

Thread Status:
Not open for further replies.
  1. bieri87

    bieri87 Kbyte

    Halli Hallo,

    ich bräuchte eine batch mit folgender Funktion:

    ich hab einen Ordner mit .jpeg files
    /daten/jpeg's

    und diese sollen nach monat und jahr sortiert werden.
    /05_2008/jpeg's
    /06_2008/jpeg's

    die for schleife in ner Batch is mir bis jetzt ein Rätsel wenn es um Dateiarbeiten geht ..

    kann mir einer weiterhelfen ?
     
  2. VB-Coder

    VB-Coder Megabyte

    Schau dir mal das an: klick
    Ist zwar kein Batch aber vbs. Und mit ein paar kleinen Änderungen sollte das eine gute Lösung sein, denke ich.
     
  3. bieri87

    bieri87 Kbyte

    mh ok also das es in den jeweiligen Timestamp des Bildes geordnet wird funzt schon

    nur ist die frage, ob man den timestamp auseinander nehmen kann und nach Jahr und Monat sortieren kann.

    So in der Form

    \2008\05
    \2008\06
    \2008\07

    Code:
    @echo off & setlocal 
    
    set "Quelle=G:\data\*.*" 
    set "Ziel=G:\archive" 
    
    for %%i in (%Quelle%) do ( 
    
    	for /f %%a in ("%%~ti") do ( 
    
    		if not exist "%Ziel%\%%a" md "%Ziel%\%%a"
    		move "%%~fi" "%Ziel%\%%a"
    	)
    )
    
     
  4. bieri87

    bieri87 Kbyte

    ok, hier eine funktionierende Möglichkeit:

    Code:
    
    set "QuellDirFiles=c:\quelle\*.*" 
    set "ZielDirRoot=c:\ziel" 
    
    
    for %%i in (%QuellDirFiles%) do ( 
          for /f "tokens=2-3 delims=. " %%a in ("%%~ti") do @if not exist "%ZielDirRoot%\%%b\%%a"  md "%ZielDirRoot%\%%b\%%a" 
          )
    for %%i in (%QuellDirFiles%) do @for /f "tokens=2-3 delims=. " %%a in ("%%~ti") do move "%%~fi" "%ZielDirRoot%\%%b\%%a" 
    
    
    
    das würde die Datei im Quellverzeichnis das Zielverzeichnis verschieben, einen Ordner mit dem jahr anlegen, darin den Monat .. und entsprechend die Dateien da rein verschieben ....


    Hat jemand ne Ahnung, ob es möglich ist .. in einer for schleife mehrere Anweisungen durch zuführen ??? also nach dem do z.b ... ich hab es schon mit && versucht .. funktioniert aber nicht ...

    ein weiteres Ziel ist jetzt, den Zeitstempel von mehreren Datein wieder auszulesen, und die zweistellige Version des Jahres vorne anzuhängen

    z.b:

    09dateiname.txt oder
    08dateiname.txt

    oder hat da jemand vielleicht schon was fertiges, bzw gute Links?
     
Thread Status:
Not open for further replies.

Share This Page