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

  • #1
E

eine_frage

Guest
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...
 
  • #5
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
 
  • #6
Hab ein kleines Proggi geschrieben, weil ich genau das gleich brauchte und es mit Script zu umständlich war ;)

- Ulli -
 
  • #7
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... ;)
 
Thema:

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

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.851
Beiträge
708.011
Mitglieder
51.502
Neuestes Mitglied
Frank-BS
Oben