Discussion:
Älteste Datei in einem Ordner löschen
(zu alt für eine Antwort)
Herbert Ehlert
2007-09-22 07:15:27 UTC
Permalink
hallo,

ich weiss nicht, ob ich hier richtig bin, aber ich suche ein script, welches
mir bei jeder ausführung immer die äteste datei in einem ordner löscht.

hintergrund: wir sichern eine spezielle datei auf einer usb-festplatte. da
deren platz beschränkt ist, möchte ich jetzt das täglich die älteste datei
automatisch gelöscht wird. ein entsprechendes script würde ich dann täglich
ausführen lassen.

kann mir da jemand bei helfen? vielen dank schon mal im voraus :)


h.e.
Pegasus (MVP)
2007-09-22 10:02:51 UTC
Permalink
Post by Herbert Ehlert
hallo,
ich weiss nicht, ob ich hier richtig bin, aber ich suche ein script,
welches mir bei jeder ausführung immer die äteste datei in einem ordner
löscht.
hintergrund: wir sichern eine spezielle datei auf einer usb-festplatte. da
deren platz beschränkt ist, möchte ich jetzt das täglich die älteste datei
automatisch gelöscht wird. ein entsprechendes script würde ich dann
täglich ausführen lassen.
kann mir da jemand bei helfen? vielen dank schon mal im voraus :)
h.e.
Am einfachsten kannst du dies mit einer Batchdatei lösen:

@echo off
for /F "tokens=*" %%* in ('dir /b /o-d /a-d') do set file=%%*
echo del "%file%"

Entferne das Wort "echo" in der letzten Zeile, um die Datei
zu aktivieren.
ekkehard.horner
2007-09-22 12:06:37 UTC
Permalink
Post by Herbert Ehlert
hallo,
ich weiss nicht, ob ich hier richtig bin, aber ich suche ein script, welches
mir bei jeder ausführung immer die äteste datei in einem ordner löscht.
hintergrund: wir sichern eine spezielle datei auf einer usb-festplatte. da
deren platz beschränkt ist, möchte ich jetzt das täglich die älteste datei
automatisch gelöscht wird. ein entsprechendes script würde ich dann täglich
ausführen lassen.
kann mir da jemand bei helfen? vielen dank schon mal im voraus :)
h.e.
Dim oFS : Set oFS = CreateObject( "Scripting.FileSystemObject" )
Dim oFolder : Set oFolder = oFS.GetFolder( oFS.GetAbsolutePathName( ".\tmp" ) )
Dim dtOld : dtOld = Now
Dim oOldF : Set oOldF = Nothing
Dim oFile
For Each oFile In oFolder.Files
' Mal überlegen, ob .DateCreated statt .DateLastModified richtiger wäre
If dtOld > oFile.DateLastModified Then
dtOld = oFile.DateLastModified
Set oOldF = oFile
End If
Next
If oOldF Is Nothing Then
WScript.Echo "Keine Datei gefunden."
Else
WScript.Echo "Datei", oOldF.Name, oOldF.DateLastModified, "wird gelöscht."
' Eine der folgenden Zeilen aktivieren, damit wirklich gelöscht wird
' oFS.DeleteFile oOldF.Path
' oOldF.Delete True
End If

Loading...