Allereerst: ik ben geen held in VBS. Het probleempje wat ik nu heb vind ik erg vreemd en ik kom er niet uit. Ik hoop dat iemand ziet wat hier misgaat.
In regel 24 wordt een logbestand aangevuld. Dat gaat prima zolang ik regel 23 deactiveer. Maar zodra de Delete method wordt aangeroepen, wil ie niet meer loggen in regel 24. Ik krijg dan een "Path not found" foutmelding van cscript.exe.
Waarom kan ie dan ineens de logfile niet meer vinden? De Delete method doe ik via WMI en de logfile aanvullen doe ik via het FileSystemObject. Twee verschillende wegen als je het mij vraagt.
Doel van dit script is het verwijderen van subdirectories die ouder zijn dan drie maanden.
PS. Ik heb de declaratie van variabelen even weggelaten uit deze code hier op GoT, om de leesbaarheid iets te vergroten.
In regel 24 wordt een logbestand aangevuld. Dat gaat prima zolang ik regel 23 deactiveer. Maar zodra de Delete method wordt aangeroepen, wil ie niet meer loggen in regel 24. Ik krijg dan een "Path not found" foutmelding van cscript.exe.
Waarom kan ie dan ineens de logfile niet meer vinden? De Delete method doe ik via WMI en de logfile aanvullen doe ik via het FileSystemObject. Twee verschillende wegen als je het mij vraagt.
Doel van dit script is het verwijderen van subdirectories die ouder zijn dan drie maanden.
PS. Ik heb de declaratie van variabelen even weggelaten uit deze code hier op GoT, om de leesbaarheid iets te vergroten.
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
| strLogFile = "K:\Directorynaam\Cleanup.log"
strComputer = "."
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set fldFolder = objFSO.GetFolder("K:\Directorynaam")
Set colSubFolders = fldFolder.SubFolders
If Not objFSO.FileExists(strLogFile) Then
Set objLogFile = objFSO.CreateTextFile(strLogFile)
Else
Set objLogFile = objFSO.OpenTextFile(strLogFile, 8)
End If
For Each objSubfolder In colSubFolders
strToday = Now
strCreateDate = objSubFolder.DateCreated
strDiff = DateDiff("m", strCreateDate, strToday)
If strDiff >= 3 Then
strQuery = "SELECT * FROM Win32_Directory WHERE Name = 'K:\\Directorynaam\\" & objSubFolder.Name & "'"
Set colWMISubFolder = objWMIService.ExecQuery (strQuery)
For Each objWMISubFolder In colWMISubFolder
WScript.Echo objWMISubFolder.Name
objWMISubFolder.Delete
objLogFile.WriteLine("Op " & Date & " is verwijderd: " & objSubFolder.Name)
Next
End If
Next |
[ Voor 6% gewijzigd door Crusader op 14-09-2006 08:14 ]
If it ain't broken, play with it till it breaks.