knuefi
Goto Top

Nach Tagen Löschen regex.pattern VBScript

Hallo und guten Abend zusammen,
ich benötige eure Hilfe. Das unten stehende Script soll anhand einer Zahl (Anzahl Tage) im Dateinamen die Datei löschen, leider tut es nicht was es soll und ich finde den Fehler nicht.
<
FOLDER = "D:\Users\Desktop\Test"  
set fso = CreateObject("Scripting.FilesystemObject")  
set regex = CreateObject("vbscript.regexp")  
regex.pattern = "_(\d+)_$"  
for each file in fso.GetFolder(FOLDER).Files
 set match = regex.Execute(fso.GetBasename(file.Name))
 if match.count > 0 then
   intDays = CInt(match(0).submatches(0))
   if DateAdd("d",intDays,file.DateCreated) < Now() then  
      file.Delete
   End if
 End if 
Next
Ich hoffe jemand kann mir weiter helfen
Gruß

Content-ID: 434151

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

Ausgedruckt am: 25.11.2024 um 06:11 Uhr

Kraemer
Kraemer 30.03.2019 um 00:55:06 Uhr
Goto Top
Moin

Klar kein Problem. Mangels Lust diemFrage :
Wo ist das Problem?
Knuefi
Knuefi 30.03.2019 um 04:14:40 Uhr
Goto Top
Die Dateien werden nicht gelöscht
138810
138810 30.03.2019 aktualisiert um 07:44:41 Uhr
Goto Top
Denk doch mal nach was hier fehlt!! Genau, wir kennen deine Dateinamen nicht, also können wir auch nicht evaluieren ob dein Regex-Pattern überhaupt zutrifft!
FOLDER = "D:\Users\Desktop\Test"
Da fehlt offensichtlich der Username im Pfad. Fass Kaffee rüber schmeiß...
Knuefi
Knuefi 30.03.2019 um 11:25:05 Uhr
Goto Top
Der Pfad ist richtig, daran liegt es nicht. Die Datei, die gelöscht werden sollen, sind PDF Dateien.
Beispiel:
In D:\Test liegen eine Menge PDF Dateien mit unterschiedlichen Dadeinamen, alle haben aber irgendwo im Dateinamen _Zahl_ stehen. Die Zahl gibt die Verweildauer des PDF Dokument an. Eine PDF Datei mit den Dateinamen Apel_5_Test.pdf wird nach 5 Tage gelöscht, eine PDF Datei mit den Dateinamen Beispieldokument-eins_2_test.pdf wird nach 2 Tage gelöscht usw.
138810
Lösung 138810 30.03.2019 aktualisiert um 16:17:05 Uhr
Goto Top
irgendwo im Dateinamen _Zahl_ stehen.
Siehst du, deswegen wollte ich das wissen, denn in dem Fall ist dein Regex Pattern nicht korrekt!!
Entferne das Dollarzeichen aus dem Pattern dann geht das auch, denn das Dollarzeichen bedeutet das der String nur am Ende gefunden werden soll!
regex.pattern = "_(\d+)_"  
Knuefi
Knuefi 01.04.2019 um 18:34:02 Uhr
Goto Top
Danke 138810, das war der Fehler