BatchFile: Erstellungsdatum von Datei auslesen

Dieses Thema im Forum "Programmieren" wurde erstellt von Brovning, 16. August 2005.

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. Brovning

    Brovning Byte

    Registriert seit:
    16. August 2005
    Beiträge:
    13
    Guten Tag!
    Habe leider ein Problem, mit welchem ich mich nun schon länger beschäftige.

    Kann man das Erstellungsdatum einer Datei mit Hilfe einer BatchDatei auslesen und weiterverarbeiten?

    Vielen Dank für Euere Hilfe!

    Gruß

    Brovning
     
  2. Michi0815

    Michi0815 Guest

    Registriert seit:
    7. Januar 2004
    Beiträge:
    3.429
    das geht soweit ich weiss nur über "Ersetzung von Verweisen" (unter "help for" gibts da nähere infos). in kurz: du brauchst einen verweis auf die datei. den bekommt man am einfachsten über eine for-schleife; den verweis ersetzt man dann durch das dateidatum:

    for %%f in ("c:\gewünschte.datei") do echo %%~tf
     
  3. Brovning

    Brovning Byte

    Registriert seit:
    16. August 2005
    Beiträge:
    13
    Du bist der Beste! Nochmals vielen Dank ! ! !
    Jetzt bin ich meiner Lösung schon wesentlich näher!

    Wie mache ich das nun für alle Dateien in einem bestimmten Verzeichnis?
     
  4. Michi0815

    Michi0815 Guest

    Registriert seit:
    7. Januar 2004
    Beiträge:
    3.429
    for %%f in ("c:\verzeichis\*") do echo %%f: %%~tf
     
  5. Brovning

    Brovning Byte

    Registriert seit:
    16. August 2005
    Beiträge:
    13
    *arg* so einfach...

    Nun bin ich bei meinem finalen Problem.
    Ich möchte alle Dateien, welche einem bestimmten Datum entsprechen in einen anderen Ordner verschieben, doch der FOR-Befehl lässt nur DO zu.
    Zudem weis ich nicht, wie die Datei heißt, welche das jeweilige Datum hat.

    Dachte zuerst an:
    for %%f in (*) (If "%%~tf" EQU "%Datum%" MOVE %?????% %folder%)
     
  6. Brovning

    Brovning Byte

    Registriert seit:
    16. August 2005
    Beiträge:
    13
    Also bin jetzt schon weiter:
    Die Datei ist das %%f und vor das IF muss ein DO, aber irgendwie funktiert es so auch noch nicht:

    for %%f in (*) DO (If "%%~tf" EQU "%Datum%" MOVE %%t %folder%)
     
  7. Michi0815

    Michi0815 Guest

    Registriert seit:
    7. Januar 2004
    Beiträge:
    3.429
    Code:
    @echo off
    
    if NOT %1.==. goto %1
    set Datum=16.08.05
    
    for %%f in (*) do call %0 DateCheck %%~tf "%%f"
    goto File_Fin
    
    :DateCheck
    rem Anmerkung: die Ausgabe von %%~tf erfolgt nach folgendem Format:
    rem            dd.mm.jj hh:mm
    rem            Durch das Leerzeichen zerfällt der eine Parameter bei
    rem            der Übergabe (call-Befehl) in 2 Parameter!!
    rem %1 ... auszuführende "Prozedur"; kann man sich in diesem Fall sparen...
    rem %2 ... Datum
    rem %3 ... Uhrzeit
    rem %4 ... Dateiname
    
    if %2.==%Datum%. move %4 %sonstwohin%
    goto File_Fin
    
    :File_Fin
     
  8. Brovning

    Brovning Byte

    Registriert seit:
    16. August 2005
    Beiträge:
    13
    Nochmals vielen vielen Dank! :bet:
    Funktioniert nun exakt so, wie ich es mir von Anfang an vorgestellt hatte!
     
Status des Themas:
Es sind keine weiteren Antworten möglich.

Diese Seite empfehlen