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-Key: 294103

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

Printed on: April 19, 2024 at 06:04 o'clock

Member: Lochkartenstanzer
Lochkartenstanzer Jan 24, 2016 at 15:18:30 (UTC)
Goto Top
Mitglied: 114757
Solution 114757 Jan 24, 2016 updated at 15:42:37 (UTC)
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
Member: Lochkartenstanzer
Lochkartenstanzer Jan 24, 2016 at 15:24:06 (UTC)
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
Mitglied: 114757
114757 Jan 24, 2016 updated at 15:27:00 (UTC)
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.
Member: laster
laster Jan 24, 2016 at 18:53:36 (UTC)
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
Member: Knuefi
Knuefi Feb 15, 2016, updated at Feb 16, 2016 at 18:16:36 (UTC)
Goto Top
doppelt gepostet
Member: Knuefi
Knuefi Feb 16, 2016 at 18:15:24 (UTC)
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.