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

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

Printed on: April 18, 2024 at 03:04 o'clock

Member: Kraemer
Kraemer Mar 29, 2019 at 23:55:06 (UTC)
Goto Top
Moin

Klar kein Problem. Mangels Lust diemFrage :
Wo ist das Problem?
Member: Knuefi
Knuefi Mar 30, 2019 at 03:14:40 (UTC)
Goto Top
Die Dateien werden nicht gelöscht
Mitglied: 138810
138810 Mar 30, 2019 updated at 06:44:41 (UTC)
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ß...
Member: Knuefi
Knuefi Mar 30, 2019 at 10:25:05 (UTC)
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.
Mitglied: 138810
Solution 138810 Mar 30, 2019 updated at 15:17:05 (UTC)
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+)_"  
Member: Knuefi
Knuefi Apr 01, 2019 at 16:34:02 (UTC)
Goto Top
Danke 138810, das war der Fehler