[vbs] Tempfolder verwijderen

Pagina: 1
Acties:

  • Hmail
  • Registratie: April 2003
  • Laatst online: 08:49

Hmail

Doet ook maar wat.

Topicstarter
Ik ben bezig met een script dat verschillende folders leegmaakt/verwijdert zodra je uitlogt. Echter, ik krijg het niet voor elkaar om de tempfolder te verwijderen. Ik heb deze code:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
Dim fso, fold, foldfinal, foldcol, dir, tempfolder, docsfolder, berichttekst
docsfolder = "C:\Documents And Settings\"
Set fso = CreateObject("Scripting.FileSystemObject")
set fold = fso.GetFolder(docsfolder)
set foldcol = fold.SubFolders
for each dir in foldcol
    tempfolder = docsfolder + dir.name + "\Local Settings\Temp"
    MsgBox tempfolder
    set foldfinal = fso.GetFolder(tempfolder)
    fso.DeleteFolder(tempfolder)
    berichttekst = tempfolder + " is verwijderd!"
    MsgBox berichttekst
next

Dit zou er dus voor moeten zorgen dat bij iedere gebruiker waarvan er een profiel ge-cached is, de temp-map verwijderd zou moeten worden. Echter, ik krijg meteen nadat de MsgBox aangeeft welke map hij gaat verwijderen (C:\Documents And Settings\Administrator\Local Settings\Temp) (ondanks dat ik het script als Administrator uitvoer) de error: "Permission denied", error code 800A0046 op lijn 10. :(
Heeft iemand enig idee hoe ik deze mappen wel kan verwijderen? Via Google kwam ik alleen op een script uit die bestand voor bestand verwijderd. Dat moet toch makkelijker kunnen? :?

offtopic:
Ik ging er vanuit dat dit topic hier moest, omdat JS ook hier moet.

It might sound as if I have no clue what I'm doing, but I actually have a vague idea.


  • Flapp
  • Registratie: December 2004
  • Laatst online: 02-01 20:16
t is misschien een beetje domme vraag , maar kan je dit niet gewoon doen met batch script? en dat je dan 1 map naam (gebruikersnaam) in een variabel plaatst die hij opgegeven krijgt door een ander vbscript?

"Stilte, een gat in het geluid...."


  • Kappie
  • Registratie: Oktober 2000
  • Laatst online: 24-04 16:58

Kappie

Tell me your secrets...

Zelf gebruik ik een batch scrippie die een hoop mappen opschoon. o.a. de temp mappen


code:
1
2
del /F /Q /S "%temp%\*.*"
del /F /Q /S "%windir%\temp\*.*"

He does fit the profile perfectly. He's intelligent, but an under-achiever; alienated from his parents; has few friends. Classic case for recruitment by the Soviets.


  • Hmail
  • Registratie: April 2003
  • Laatst online: 08:49

Hmail

Doet ook maar wat.

Topicstarter
Flapietoetoe schreef op vrijdag 23 september 2005 @ 12:27:
t is misschien een beetje domme vraag , maar kan je dit niet gewoon doen met batch script? en dat je dan 1 map naam (gebruikersnaam) in een variabel plaatst die hij opgegeven krijgt door een ander vbscript?
Ik ben niet echt bekend met de samenwerking van 2 verschillende script-talen, als dat tenminste is wat jij bedoelt. Maar ik kan het allicht proberen. Ben er toenet achter gekomen dat het mogelijk is om de temp-map via de command prompt te verwijderen.
Toch wel :) Ik kon het niet duidelijk vinden in de FAQ/Policy's

It might sound as if I have no clue what I'm doing, but I actually have a vague idea.


  • Brahiewahiewa
  • Registratie: Oktober 2001
  • Laatst online: 30-09-2022

Brahiewahiewa

boelkloedig

Chip! schreef op vrijdag 23 september 2005 @ 12:14:
de error: "Permission denied", error code 800A0046 op lijn 10...
Die permission Denied melding krijg je ook als de folder gelocked is door een of meerdere andere processen. Daarom is het ook geen goed idee om die temp folder te verwijderen; sowieso wordtie bij de eerstvolgende rebot gewoon weer aangemaakt.
De betere aanpak is om de files die erin staan een voor een te verwijderen. Dus in plaats van
code:
1
2
3
    fso.DeleteFolder(tempfolder)
    berichttekst = tempfolder + " is verwijderd!"
    MsgBox berichttekst
code:
1
2
3
4
5
6
7
    On Error Resume Next
    For Each oFile in foldfinal.files
        oFile.Delete
    Next 'oFile
    On Error GoTo 0
    berichttekst = tempfolder + " is geleegd!"
    MsgBox berichttekst
Je zult ook files tegenkomen die nog gelocked zijn, vandaar die On Error Resume Next.
Uiteindelijk is je temp folder dan niet helemaal leeg, maar wel zo leeg mogelijk.

QnJhaGlld2FoaWV3YQ==


  • Tomatoman
  • Registratie: November 2000
  • Laatst online: 28-04 18:15

Tomatoman

Fulltime prutser

Zijn er misschien nog programma's actief die de bewuste mappen als current directory hebben ingesteld? Of zijn er nog bestanden of subdirectory's aanwezig in die mappen? Dat kan er allemaal toe leiden dat een map niet kan worden verwijderd.

Een goede grap mag vrienden kosten.

Pagina: 1