Hackerboard Wiki HaboBlog
Hackerboard bei Facebook Hackerboard bei Google+ Hackerboard bei Twitter

[HaBo]

 
Code Kitchen Allgemeines Coder-Forum rund um das Programmieren eigenständiger, ausführbarer Programme.

Dateien löschen

Diskussion: Dateien löschen im Forum Code Kitchen, in der Kategorie Software Home; Anzeige Hallo Ich benötige ein Programm, welches von einem Oberverzeichnis ausgehend alle xml Dateien die älter als 60 Tage sind ...

Antwort
Alt 29.04.05, 13:15   #1 (permalink)
 
Registriert seit: 20.10.04
xister Leistung: Facit NTK
Likes: 0
Standard Dateien löschen

Anzeige

Hallo

Ich benötige ein Programm, welches von einem Oberverzeichnis ausgehend alle xml Dateien die älter als 60 Tage sind aus den Unterverzeichnissen löscht.
Die Verzeichnisse sollen bestehen bleiben.

Diese xml Dateien sind Serverlogs die unwahrscheinlich den Rechner in die Kniee zwingen nach einer bestimmten Zeit.

Fühlt sich jemand der Aufgabe gewachsen und könnte sowas programmieren?

Wäre es super.

Gruß
xister

xister ist offline   Mit Zitat antworten
Alt 29.04.05, 13:17   #2 (permalink)
Senior Member
 
Registriert seit: 23.12.03
silenced Leistung: Facit NTK
Likes: 0
Standard

OS ?

Wenn Windows -> Chronjob mit VB-Script
silenced ist offline   Mit Zitat antworten
   
HaBOT
 
- Anzeige -

Werbung ist gerade online    
Alt 29.04.05, 13:25   #3 (permalink)
Themenstarter
 
Registriert seit: 20.10.04
xister Leistung: Facit NTK
Likes: 0
Standard

ja, Plattform ist Windows.
xister ist offline   Mit Zitat antworten
Alt 29.04.05, 13:42   #4 (permalink)
Senior Member
 
Registriert seit: 23.12.03
silenced Leistung: Facit NTK
Likes: 0
Standard

Code:
' Script to delete all files older than a specified date w/detail logging
' Added provision for up to 10 filters on delete.
' Specify the date range, filter info and whether you
' want to actually delete the files.
' I use this tool to clean up server directories
' and was able to get rid of over 28,000 old dead files
' Last Modified 13:32 - 11/30/2002 RGhetti
' Resets Read-only attribute of entire path and deletes empty directories

Option Explicit
Dim WSHShell, fs, Header, LogFile, LogName
Dim PCName, FilePath, File
Dim FDate, Count, DelCount, AllFilters, OlderThan
Dim DoDelete, ObjDirectory, TheFiles
Dim TimeIt, EndTime, StartTime
Dim FilterList(10)

Const ForReading = 1, ForWriting = 2

Set WSHShell = WScript.CreateObject("WScript.Shell")
Set fs = CreateObject("Scripting.FileSystemObject")
Header = "Your Computer" 
PCName = WSHShell.ExpandEnvironmentStrings("%COMPUTERNAME%")
Count = 0
DelCount = 0
AllFilters = 10
StartTime = Timer

' changeable Settings
LogName = "c:\temp\DelbyDate.LOG"


' Dont actually Delete the files, just log the ones that meet the criteria
' Change this to do the delete ( use this as a testing tool)
DoDelete = TRUE

' path to start from:
FilePath = "\\berlin\public_temp"
' FilePath = "C:\TEMP"
' ex: N:\DEPTS

' date "olderthan" to delete
OlderThan = (Now() - (120)) ' older than 120 days

' File and directory filters change these to your own settings, they 
' Populate FilterList
'FilterList(1) = UCase("pagefile.sys") ' system file
'FilterList(2) = UCase(".dll") ' system file
'FilterList(3) = UCase(".exe") ' dont delete any program files
'FilterList(4) = UCase("historic") ' dont delete any historic dept files 
'FilterList(5) = UCase("legal") ' dont delete any legal dept files 
'FilterList(6) = UCase("trackit") ' dont delete any files in the trackit directory
'FilterList(7) = UCase("keep") ' "keep" directories?
'FilterList(8) = UCase(".dbf") ' .dbf files
'FilterList(9) = UCase("") ' not used
'FilterList(10) = UCase("save") ' marked to save


'*****[ Script begin ]**************
WSHShell.Popup "Searching for Files Older than = " & CStr(OlderThan), 1, Header, 0

' Open log file
StartLogging()
StartTime = Now()
LogEvent(" Searching for Files Older than = " & OlderThan)
LogEvent("From " & FilePath & " on " & PCName & " !!@ " & Now())
Set ObjDirectory = fs.GetFolder(FilePath)
If NOT DoDelete Then
LogEvent("Files will not be Deleted.")
End If


' main subroutine
'msgbox "attrib.exe -R " & ObjDirectory & "\*.* /S /D"
WSHShell.run("attrib.exe -R " & ObjDirectory & "\*.* /S /D")
Process ObjDirectory


LogEvent("Total Files Counted = " & CStr(Count))
If DoDelete Then
LogEvent("Total Files Deleted = " & CStr(DelCount))
End If
EndTime = Timer
TimeIt = EndTime - StartTime
LogEvent("Total Time = " & TimeIt & " Seconds")
StopLogging()
Set fs = Nothing
'show_msg("Delete by Date Script Complete. ") 
WSHShell.Popup "Delete by Date Script Complete. ", 1, Header, 0
wscript.Quit


' EOS '*******************
'*************************
'*************************

Sub RemoveFile(TheFile)
Dim oFile
DelCount = DelCount + 1
Set oFile = fs.GetFile(theFile)
on error resume next
oFile.Delete
LogEvent(TheFile & " -Deleted")
End Sub 'RemoveFile()


Function InFilter(AFile)
Dim Z, TmpStr
InFilter = FALSE
For Z = 1 to AllFilters 
TmpStr = CStr(FilterList(Z))
If (Instr(UCase(AFile), TmpStr)> 1) Then
InFilter = TRUE
End If
Next 
End Function 'InFilter


Sub Process(objDirectory)
Dim MoreFolders, TempFolder
Set TheFiles = objDirectory.Files

For Each file in theFiles
Count = Count +1 
If FExist(File.Path) Then 
IF NOT InFilter(File.Path) Then
FDate = GetFileDate(File.Path)
If (FDate < OlderThan) Then
If DoDelete Then
RemoveFile(File.Path)
Else
LogEvent(File.Path & " - " & FDate & " To Delete.")
End If
End If 
End If 
End If
Next

Set MoreFolders = objDirectory.SubFolders

For Each TempFolder In MoreFolders
' start (ronny)
'msgbox "f:" & TempFolder.Files.Count & "->d:" & TempFolder.subfolders.count & "->" & TempFolder ' debug
if TempFolder.Files.Count = 0 and TempFolder.subfolders.count = 0 then
'msgbox "del" & TempFolder ' debug
TempFolder.Delete
else
Process TempFolder
end if
' end (ronny)
Next
End Sub 'Process()

Function GetFileDate(theFile)
Dim oFile
Set oFile = fs.GetFile(theFile)
GetFileDate = oFile.DateLastModified
End Function 'GetFileDate()

Sub LogFileInfo()
' LogEvent(File.Path & " : " & FDate & ": Is Older Than " & OlderThan)
LogEvent(File.Path & " - " & FDate)
End Sub 'LogFileInfo()

Sub StartLogging()
On Error Resume Next
Set LogFile = fs.CreateTextFile(LogName,vbTrue)
If (Err.Number <> 0) Then
WSHShell.Popup "Could not create log file " & LogFile, 2, Header, 0
Wscript.Quit(1)
End If
LogFile.WriteLine " Logging Enabled : " & Now()
ScriptLoc = wscript.scriptfullname
LogFile.WriteLine " Script running from : " & ScriptLoc
End Sub 'StartLogging()

Sub StopLogging()
On Error Resume Next
LogFile.WriteLine " Logging Disabled : " & Now()
LogFile.Close
End Sub

Sub LogEvent(StringtoWrite)
on error resume next
LogFile.WriteLine StringtoWrite
End Sub

Sub LogEventNoCR(StringtoWrite)
on error resume next
LogFile.Write StringtoWrite
End Sub

Sub show_msg(strText)
MsgBox strText, vbInformation, Header
End Sub

Function FExist(filespec) ' File Exists
FExist = FALSE
If (fs.FileExists(filespec)) Then
FExist = TRUE
End If
End Function

'****************
silenced ist offline   Mit Zitat antworten
Antwort
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Software Home » Code Kitchen » Dateien löschen
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
CMD - Dateien suchen und löschen derhesse Windows 3 08.11.09 15:08
Dateien wirklich "löschen"... Bloody2k Windows 30 17.08.07 19:22
Kennwortabfrage bei löschen von Dateien nukmed Windows 1 09.03.07 19:45
Löschen von verwendeten Dateien GuteFrage Applikationen 6 11.05.05 12:27
Dateien löschen MrSwissi (In)security allgemein 26 11.06.04 09:23


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61