Toon posts:

Automatisch gemaakte xls verwijderen met VBSCRIPT

Pagina: 1
Acties:

Verwijderd

Topicstarter
Dag Alle,

Ik heb op het werk een XLS bestand gemaakt dat bij het openen een kopie maakt vanzichtzelf.

Dit doet die door de systeemdatum + tijd als naam de nemen. Dit werk goed. Nu wil ik echter de bestanden ouder dan 2 weken ook automatisch verwijderen.

Daarvoor heb ik de volgende code geschreven

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
Private Sub Workbook_Open()
On Error GoTo erroropvangen
Dim Systeemdatum
Dim Systeemtijd
Dim Path
Dim Extensie
Dim Location
Dim datumcheck

datumcheck = DateAdd("ww", -1, Date)

' MsgBox "" & datumcheck

Systeemdatum = Format$(Date, "dd_mm_yy")


Systeemtijd = Format$(Time, "hh_mm")

Path = "D:\backup\"
Extensie = ".xls"
Location = "" & Path & Systeemdatum & "_" & Systeemtijd & Extensie


ActiveWorkbook.SaveCopyAs Filename:=Location
'MsgBox "" & Location

Set FileSysObj = CreateObject("Scripting.FileSystemObject")

'Verwijder de bestanden met een datum die voor die van datumcheck ligt


GoTo einde




On Error GoTo erroropvangen

erroropvangen:

MsgBox " Er heeft een error plaatsgevonden u kunt gewoon doorwerken enkel er is geenbackup gemaakt"


einde:

End Sub



Nu heb ik het volgende probleem mijn bestanden het dus Systeemdatum+tijd.xls. Maar weet iemand welke IF statment ik moet gebruiken om alle (datums voor de datumcheck).xls te verwijderen.

Heeft iemand hier al eens een scripje voor gemaakt?

Alvast bedankt

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 20:44

Creepy

Tactical Espionage Splatterer

Pak de huidige datum, haal er 14 dagen vanaf en gebruik die datum om de bestandnaam te genereren en verwijder dat bestand als dat bestaat

Loop vervolgens over alle bestanden en check de datum in de filenaam

* Creepy ziet het probleem niet zo?

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Verwijderd

Topicstarter
Ja dacht dat eerst ook zo te doen, maar nu is het zo dat ik de tijd niet weet en aangezien het programma soms meerdere keren op een dag loop gebruik ik dus ook de tijd. Maar kan ook voor komen dat het een paar dagen niet loopt.

Dus als ik het volgende zou doen

deletefile "d:\backup\" &datumcheck & "*.xls"

dan neemt hij wel alle bestanden van die datum ongeacht welke tijd erachter staat.

Oke ik zou dan dus ook meerdere datumvariable kunnen maken waarbij ik dus tot een week terug alle datum verwijder normaal komt er dan geen doorheen. Maar ik had gehoopt dat er een betere manier is om dat te programmeren.

  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 20:59

mulder

ik spuug op het trottoir

Ik zou eerder de bestanden 'enumeraten', vergelijken en verwijderen totdat de huidige datum is bereikt.

oogjes open, snaveltjes dicht


Verwijderd

Topicstarter
Oke "enumeraten" dus eigenlijk een soort van array maken waarin de datum vervangen worden door een nummer of een code. en dan kan ik dus aan de hand van die code. tot daar verwijderen.

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 20:44

Creepy

Tactical Espionage Splatterer

Waarom denk je zou moeilijk??
Je gaat gewoon alle bestanden af en vergelijkt de datum en tijd in de bestandnaam met de huidige datum en tijd - twee weken.
Daar komt verder geen array of code aan te pas?

Don Facundo bedoelt met "enumeraten": alles afgaan (dus alle bestanden controleren)

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney

Pagina: 1