Batch Datei erstellen
Geizhals » Forum » Programmierung » Batch Datei erstellen (32 Beiträge, 1072 Mal gelesen) Top-100 | Fresh-100
Du bist nicht angemeldet. [ Login/Registrieren ]
.....
Re(5): Batch Datei erstellen
15.01.2018, 15:43:21
Man merkt, dass ich das Script nur "quick'n'dirty" gebastelt hab, damals... keinerlei Logik drin...

Wie auch immer, kann daran liegen, dass ein File grad im Zugriff ist - und dann steigt das Script einfach aus :(

Nachdem der Upload grad nicht klappt kommt der Quelltext halt im Posting direkt - einfach alles im VB-Script mit dem folgenden Code ersetzen:


Option Explicit

If WScript.Arguments.Count = 2 Then
   Call DeleteOldfiles(WScript.Arguments(0), WScript.Arguments(1))
Else
   WScript.Echo "Usage: " & WScript.ScriptName & " <Pfad> <Dateien_älter_als_X_Tage>" & vbCrLf & vbCrLf & _
                 "Wenn <Pfad> Leerzeichen enthält, unter Anführungszeichen setzen."
End If

Sub DeleteOldFiles(Path, Interval)

    Dim FCount, strFile, dtmFileDate, dtmOldestDate
    Dim objFSO, objFolder, colFiles, objFile

    dtmOldestDate = DateAdd("d", -Interval, Now)

    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objFolder = objFSO.GetFolder(Path)

    FCount = 0
    Set colFiles = objFolder.Files
        For Each objFile in colFiles
            strFile = objFile.Path
            dtmFileDate = objFile.DateLastModified
            If dtmOldestDate >= objFile.DateLastModified Then
               On Error Resume Next
               Wscript.Echo strFile
               objFSO.DeleteFile strFile, True
               If Not err <> 0 Then FCount = FCount + 1
               err.Clear
               On Error GoTo 0
            End If
        Next
        WScript.Echo colFiles.Count & " Dateien gesamt" 
        WScript.Echo FCount & " Datei(en) gelöscht"

    Set objFSO = Nothing
    Set objFolder = Nothing
    Set colFiles = Nothing

End Sub


Damit wird der Fehler übersprungen und das Script läuft weiter durch.
Außerdem hab ich noch eingebaut, dass er die Dateien, die gelöscht werden (sollen), durchzählt und anzeigt - sprich wenn Du die Befehlszeile aus der Batchdatei einfach mal so in ein CMD-Prompt schreibst werden die Dateien aufgelistet und Du kannst "mitlesen".

Zur Info noch: es werden nicht alle Dateien mit Erstellungsdatum älter als 2 Tage gelöscht, sondern nur jene Dateien, die vor mehr als 2 Tagen das letzte Mal verändert wurden.

hth,

greetz

glockman B-)

- There's no replacement for displacement. Not even Diesel. - ________________________________________________________________

I like my women how I like my computer.
On my lap. Turned on. Virus free.


Antworten PM Übersicht Chronologisch Zum Vorgänger
 
Melden nicht möglich
 

Dieses Forum ist eine frei zugängliche Diskussionsplattform.
Der Betreiber übernimmt keine Verantwortung für den Inhalt der Beiträge und behält sich das Recht vor, Beiträge mit rechtswidrigem oder anstößigem Inhalt zu löschen.
Datenschutzerklärung