[Batch] - Dateien älter als 7 Tage löschen

Dieses Thema [Batch] - Dateien älter als 7 Tage löschen im Forum "Webentwicklung, Hosting & Programmierung" wurde erstellt von eine_frage, 24. Mai 2005.

Thema: [Batch] - Dateien älter als 7 Tage löschen Ich benötige ein Batch Skript welche bestimmte Dateien, welche älter als 7 Tage sind löscht. Die Dateien um die es...

  1. Ich benötige ein Batch Skript welche bestimmte Dateien, welche älter als 7 Tage sind löscht.

    Die Dateien um die es geht sind folgendermaßen aufgebaut:

    nameimmergleich_2005-01-01_1230.bak

    Der vordere Teil hat immer den gleichen Namen, dann gefolgt vom Datum und der Uhrzeit (hier im Beispiel 12:30 Uhr).

    Wie kann ich nun in ein Batchskript eine Überpfrüfung auf Datum älter als 7 Tage machen?

    Von der Art her sollte es so gehen:

    stichtag = %date% - 7 Tage
    wenn filename beinhaltet %stichtag% dann del

    Nur wie mach ich das Batch-tauglich?
    Danke!
     
  2. Hallo,

    mit einem Batch ist das relativ komplex!
    Du müsstest mit den Rechenkapazitäten des SET-Befehls und Umgebungsvariablen arbeiten.

    Mit VBScript oder JScript wäre das eine Sache von,  sagen wir, 15 Minuten.

    Gruss

    Reiner
     
  3. hmm... vbskript bin ich leider ned recht fit :eek:
    Schade, i hätte gedacht das wär kein grosses Problem mit Batch...
     
  4. Hallo,

    hier mal der Quelltext für das passende VB-Script:

    Option Explicit

    Dim objWshNetwork 'Netzwerk Objekt
    Dim objWshShell 'Shell Objekt
    Dim objFso 'File System Objekt
    Dim objArgs 'Argumente Objekt
    Dim objEnv 'Umgebungs Objekt
    Dim objRegEx 'Regulärer Ausdruck

    Set objWshNetwork = CreateObject(WScript.Network)
    Set objWshShell = CreateObject(WScript.Shell)
    Set objFso = CreateObject(Scripting.FileSystemObject)
    Set objArgs = WScript.Arguments
    Set objEnv = objWshShell.Environment(Process)
    Set objRegEx = New RegExp

    '__________________________________________________________

    Dim Ordner, Datei, Erstelldatum, Datum_Akt, Diff, Quelle


    Set Ordner = objFso.GetFolder(C:\Winnt)

    For Each Datei in Ordner.Files
    Quelle = Datei.Name
    Datum_Akt = Now
    Erstelldatum = Datei.DateCreated
    Diff = Datum_Akt - Erstelldatum
    Set Datei = objFso.GetFile(C:\Winnt\ & Quelle)
    If Diff > 7.0 Then
    objFso.DeleteFile Datei
    End If
    Next

    Nur bevor du das machst solltest du unbedingt den Ordner deinen Wünschen entsprechend anpassen. Sonst löschst du dir eventuell dein halbes Windows-Verzeichnis ;)

    Gruß, Marco ;D
     
  5. Hab ein kleines Proggi geschrieben, weil ich genau das gleich brauchte und es mit Script zu umständlich war ;)

    - Ulli -
     
  6. hmm...und wieso war dir das mit dem Script zu umständlich? sind doch nun wirklich nur ein paar Zeilen Quelltext...aber dann direkt ein Programm zu schreiben... ;)
     
Die Seite wird geladen...

[Batch] - Dateien älter als 7 Tage löschen - Ähnliche Themen

Forum Datum
[BATCH] Nach wechsel von Energiemodus Monitor aufwecken Webentwicklung, Hosting & Programmierung 8. Juli 2014
[Batch] In Textdatei suchen und ersetzen Webentwicklung, Hosting & Programmierung 4. Okt. 2006
[BATCH] Button von Anwendung betätigen! Windows XP Forum 4. Sep. 2005
[Batch] Umleiten in eine *.txt ohne Zeilenumbruch? Webentwicklung, Hosting & Programmierung 20. Mai 2005
EXE-Dateien nach einer Zeit nicht mehr ausführbar Windows 8 Forum Sonntag um 21:21 Uhr