Print en Delete alle bestanden ouder dan X

Status
Niet open voor verdere reacties.

millboy

Gebruiker
Lid geworden
23 feb 2010
Berichten
11
Hallo iedereen,

Ik ben bezig om een eenvoudig scriptje te maken welke alle bestanden ouder dan "X" eerst print en vervolgens verwijderd.
Het is bedoeld om bestanden welke worden toegevoegd tijdens het uitvoeren van het scriptje 'over' te slaan, zodat niets per ongeluk wordt verwijderd.
Echter kom ik er niet uit en krijg ik een foutmelding. Ik heb tot nu toe dit:

Code:
TargetFolder = "C:\logs"
 
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace(TargetFolder) 
Set colItems = objFolder.Items
Dim StartTime

StartTime = Now()

For Each objItem in colItems
	If objItem.DateLastModified < StartTime Then 
		objItem.InvokeVerbEx("Print")
	End If
Next

msgbox "If all has been printed, hit OK to delete"

For Each objItem in colItems
	If objItem.DateLastModified < StartTime Then 
		objItem.InvokeVerbEx("Delete")
	End If
Next

Alvast vriendelijk bedankt voor jullie hulp!
 
Hoi millboy,

Op welke regel gaat het fout?
Wat voor foutmelding krijg je?

Mvg,

Lampie
 
Op regel 11 wordt "objItem.DateLastModified" niet ondersteund (code 800A01B6).

Ik kom deze "DateLastModified" wel vaker tegen bij objFile, maar als ik alle objItem vervang door objFile werkt "InvokeVerbEx" weer niet meer...mmm...
Lastig dat ik hier niet meer kaas van gevreten heb.
 
Code:
sub snb()
   c00="C:\logs\"
   c01=Dir(c00 & "*.*")

   do until c01=""
     if filedatetime(c00 & c01)<date then 
       kill c00 & c01
     end if
     c01=dir
   loop
End sub
 
Laatst bewerkt:
Dank je wel snb :). Echter kan mijn "StartTime" gebruikt worden bij de "date" uit jouw sub?
 
Laatst bewerkt:
Heeft iemand nog een idee wat verkeerd gaat in mijn code? Alvast bedankt.
 
Code:
Sub tst()
    'Uitsluitend Print Word documents, Visio drawings and PDFs using InvokeVerbEx("Print")
    TargetFolder = "G:\Mijn documenten\Test2"
    With CreateObject("Shell.Application").Namespace(TargetFolder)
        For Each objItem In .Items
            If FileDateTime(TargetFolder & "\" & objItem) < Now Then
            'If CreateObject("Scripting.FileSystemObject").GetFile(TargetFolder & "\" & objItem).DateLastModified < Now Then
                objItem.InvokeVerbEx ("Print")
            End If
        Next
    MsgBox "If all has been printed, hit OK to delete"
        For Each objItem In .Items
            If FileDateTime(TargetFolder & "\" & objItem) < Now Then
            'If CreateObject("Scripting.FileSystemObject").GetFile(TargetFolder & "\" & objItem).DateLastModified < Now Then
                objItem.InvokeVerbEx ("Delete")
            End If
        Next
    End With
End Sub
 
Warm bakkertje, op mijn eigen standalone PC en op mijn server werkt hij perfect. Echter in een domein niet (foutmelding "Kan het bestand niet vinden" 800A0035).

Ik lees op Google wel meer meldingen dat "Createobject" niet altijd even goed werkt in een beschermde omgeving (domein). Je moet hem blijkbaar iets meer uitdefinieren (?) :

Use a fully qualified path and file name. For example:

Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("c:\inetpub\wwwroot\filename.txt",1)


Use the Server.MapPath method to map the virtual or relative path of the file to the full physical path of the file. For example:

Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile(Server.MapPath("filename.txt"),1)

Ik heb echter geen idee hoe ik dit moet toepassen in je voorbeeld.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan