knuefi
Goto Top

Lösche Inhalt in bestimmten Unterordner wenn älter als

Hallo,
ich benötige eure Hilfe. Ich habe unterstehendes Script, leider funktioniert es nicht. Es wird nichts gelöscht. Was habe ich da übersehen?
Das ist das Ziel:

auf C:\Users\Max\Test gibt es mehre Ordner mit unterschiedlichen Namen, diese haben einen Unterordner mit den Namen "Fotos". In allen Unterordner Fotos soll der Inhalt gelöscht werden, der älter als 8 Tage ist.
MsgBox "Start mit Löschen"  
DEINORDNER = "C:\Users\MAx\Test"  
SUCHE_IN_UNTERORDNERN = True
olddate = DateAdd("d", -8, Date)  
set objFS = CreateObject("Scripting.FilesystemObject")  
Set objShell = CreateObject("Wscript.Shell")  
parseFolders objFS.GetFolder(DEINORDNER)
Function parseFolders(strFldr)
for each myFile in strFldr.Files
If LCase(objFS.GetExtensionName(myFile.Name)) = "\Fotos" then  
target = objShell.CreateShortcut(myFile.Path).TargetPath & "\Fotos\"  
If objFS.FolderExists(target) Then
RemoveOldFiles objFS.GetFolder(target)
End If
End If
Next
For Each subFolder in strFldr.SubFolders
parseFolders subFolder
Next
End Function
Function RemoveOldFiles(strFldr)
For Each f In strFldr.Files
If f.DateLastModified < olddate Then
objFS.DeleteFile f.Path,True
End If
Next
For Each subFolder in strFldr.SubFolders
RemoveOldFiles subFolder
Next
End Function
MsgBox "Fertig mit Löschen"  

Content-ID: 294103

Url: https://administrator.de/contentid/294103

Ausgedruckt am: 22.11.2024 um 04:11 Uhr

Lochkartenstanzer
Lochkartenstanzer 24.01.2016 um 16:18:30 Uhr
Goto Top
114757
Lösung 114757 24.01.2016 aktualisiert um 16:42:37 Uhr
Goto Top
Moin,
das hier stimmt nicht ... du prüfst die Dateierweiterung auf den Namen ??? Kann ja nich ...
If LCase(objFS.GetExtensionName(myFile.Name)) = "\Fotos" then
Das machst du so
If LCase(strFldr.Name) = "fotos" then
Bitte mal das hier lesen:
FileSystemObject Introduction

Gruß jodel32
Lochkartenstanzer
Lochkartenstanzer 24.01.2016 um 16:24:06 Uhr
Goto Top
Zitat von @114757:

da hat mal wieder einer was kopiert und weis nicht was face-smile.

Deswegen soltle man den Leute nicht vorgekautes vorsetzen sondern nur ein Rezept, wie sie zum Ziel kommen. face-smile

lks
114757
114757 24.01.2016 aktualisiert um 16:27:00 Uhr
Goto Top
Zitat von @Lochkartenstanzer:
Deswegen soltle man den Leute nicht vorgekautes vorsetzen sondern nur ein Rezept, wie sie zum Ziel kommen. face-smile
Die sind doch meist so unbeholfen und sind froh wenn sie es überhaupt hin bekommen. Die machen sich ja noch nicht mal die Mühe die Zeilen zu verstehen. Das ist das Hauptproblem. Gibt ja genug Doku dazu im Netz.
laster
laster 24.01.2016 um 19:53:36 Uhr
Goto Top
Hallo,
delage32.exe lässt sich auch gut in einen Script einbauen.
Du könntest auch zum Löschen das Datum aus den EXIF-Daten auslesen - so als Hinweis.
vG
LS
Knuefi
Knuefi 15.02.2016, aktualisiert am 16.02.2016 um 19:16:36 Uhr
Goto Top
doppelt gepostet
Knuefi
Knuefi 16.02.2016 um 19:15:24 Uhr
Goto Top
Hallo jodel32,

schon einige Zeit her, aber früher konnte ich es nicht testen bzw. umsetzten.
Ich habe die Zeile myFile.Name (10: If LCase(objFS.GetExtensionName(myFile.Name)) = "\Fotos" then) gegen strFlldr.Name (10: If LCase(strFldr.Name) = "fotos" then ausgetauscht. Weshalb der Austausch nötig ist, habe ich auch mit deiner Hilfe verstanden. Das eine bezieht sich auf die Datei und das andere bezieht sich auf den Ordner, richtig? Leider wird aber im Ordner "Foto" die Inhalte nicht gelöscht.