korda 0 Geschrieben 25. Januar 2016 Melden Teilen Geschrieben 25. Januar 2016 Guten Tag Zusammen ich habe ein VB Script gebastelt welches einen Ordner sucht und die darin enthaltenen PDF welche älter als 7 Tage sind löscht. call Recurse (strscanningPath) Sub Recurse(strFolderPath) Dim objFolder Set objFolder = objFSO.GetFolder(strFolderPath) Dim objFile Dim objSubFolder For Each objFile In objFolder.Files 'LOG für Ordnerscan kann eingeschalten werden, wenn es zu Scriptproblemen kommt. objLog.WriteLine("INFO: Dateien " & objFile.Path) 'Läuft nur wenn es ein File ist If objfolder.name = strSCANNINGFOLDER Then 'Wenn die Endung ein PDF ist, gehts weiter If (LCase(Mid(objFile.Name, InStrRev(objFile.Name, "."))) = ".pdf") Then 'Prüfung ob das File älter als 7 Tage ist If DateDiff("d", objfile.DateLastModified, strDate) > 7 = TRUE Then strfilesgeloescht=1 WshShell.LogEvent 1, "Loeschungsscript SCANNING: Dateien wurden geprüft und die Dateien welche älter als 7 Tage sind geloescht" & objFile.Path objLog.WriteLine("INFO: Dateien " & objFile.Path & " wurde geloescht") objFSO.DeleteFile(objfile.path) end if end if End If Next For Each objSubFolder In objFolder.SubFolders Call Recurse(objSubFolder.Path) Next End Sub Das Script funktioniert soweit ganz gut. Problem ist bei dem Script, dass er alle Folder zuerst durchsucht und nicht gezielt nach dem Folder SCANNING. Ich bräuchte hier noch eine Schlaufe, dass er zuerst alle ORdner mit Scanning sucht und dann deren Inhalt. Vielen Dank für Eure Hilfe. Die Variable strfolderpaht und strscanningpath sind in einem INI File definiert. Hier der Auszug aus dem File: [Loeschen]scanningPath="\\naphs001\betriebe$\"scanningfolder="SCANNING" Zitieren Link zu diesem Kommentar
Beste Lösung MurdocX 954 Geschrieben 25. Januar 2016 Beste Lösung Melden Teilen Geschrieben 25. Januar 2016 (bearbeitet) Für dein Problem in VBS kann ich Dir leider keine Lösung aufzeigen, jedoch als gute Alternative die Powershell. Spezial 1 Hier werden in einem Befehl die PDF-Dokumente gesucht, alle älteren als 7 Tagen gefiltert und diese Auswahl dann gelöscht. Get-ChildItem -Path 'LAUFWERK:\Scanning\*' -Include '*.pdf' | Where-Object {$_.LastWriteTime -le $((Get-Date).AddDays(-7))} | Remove-Item -Force Spezial 2 Du hast eine große Struktur und in den verschiedensten Unterordnern die Scannerverzeichnisse, dann würde das Skript so aussehen: $Pfade = Get-ChildItem -Path 'DEIN PFAD' -Recurse -Directory foreach ($AktiverPfad in $Pfade) { if ($AktiverPfad.Name -like '*Scanning*') { Get-ChildItem -Path ($AktiverPfad.FullName) -Include '*.pdf' | Where-Object {$_.LastWriteTime -le $((Get-Date).AddDays(-7))} | Remove-Item -Force } } bearbeitet 25. Januar 2016 von MurdocX Zitieren Link zu diesem Kommentar
daabm 1.366 Geschrieben 26. Januar 2016 Melden Teilen Geschrieben 26. Januar 2016 Das hier If objfolder.name = strSCANNINGFOLDER Then gehört nach oben als äußere Bedingung... Mit VBS hat das aber wenig zu tun, eher mit Programmierlogik :) Und die For Each Schleife für die Unterordner könntest auch nach oben setzen. Zitieren Link zu diesem Kommentar
korda 0 Geschrieben 26. Januar 2016 Autor Melden Teilen Geschrieben 26. Januar 2016 Vielen Dank für die Hilfe manchmal ist man einfach Blind Für dein Problem in VBS kann ich Dir leider keine Lösung aufzeigen, jedoch als gute Alternative die Powershell. Spezial 1 Hier werden in einem Befehl die PDF-Dokumente gesucht, alle älteren als 7 Tagen gefiltert und diese Auswahl dann gelöscht. Get-ChildItem -Path 'LAUFWERK:\Scanning\*' -Include '*.pdf' | Where-Object {$_.LastWriteTime -le $((Get-Date).AddDays(-7))} | Remove-Item -Force Spezial 2 Du hast eine große Struktur und in den verschiedensten Unterordnern die Scannerverzeichnisse, dann würde das Skript so aussehen: $Pfade = Get-ChildItem -Path 'DEIN PFAD' -Recurse -Directory foreach ($AktiverPfad in $Pfade) { if ($AktiverPfad.Name -like '*Scanning*') { Get-ChildItem -Path ($AktiverPfad.FullName) -Include '*.pdf' | Where-Object {$_.LastWriteTime -le $((Get-Date).AddDays(-7))} | Remove-Item -Force } } Danke Dir es muss in unserem Fall VBS sein, aber das Powershellscript hebe ich mir gerne auf :D Zitieren Link zu diesem Kommentar
daabm 1.366 Geschrieben 27. Januar 2016 Melden Teilen Geschrieben 27. Januar 2016 Ich glaub ich poste jetzt auch nur noch Lösungsansätze in PoSh... :) :) :) VBS kann ich zwar fließend, aber das will wohl keiner mehr. Zitieren Link zu diesem Kommentar
Dukel 455 Geschrieben 27. Januar 2016 Melden Teilen Geschrieben 27. Januar 2016 Vorallem sind fünf Zeilen Code einfacher und besser zu verstehen als 20-30 Zeilen. Zitieren Link zu diesem Kommentar
MurdocX 954 Geschrieben 28. Januar 2016 Melden Teilen Geschrieben 28. Januar 2016 Ich glaub ich poste jetzt auch nur noch Lösungsansätze in PoSh... :) :) :) VBS kann ich zwar fließend, aber das will wohl keiner mehr. Es kommt wohl so langsam in die Jahre. Deine Mühen sind aber nicht umsonst. Deine Lösung trägt zum Gesamtkonzept (Frage, Antwort) des TO bei ;)... :D Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.