Denne del kører, men laver mindre fejl, og her skal man selv angive alle mapper det drejer sig om, hvor det ville være nemme hvis dne selv fandt alle mapper der hedder temp, og sletter alt deri?
Dim FSO, Files, Folders set FSO=CreateObject("Scripting.FileSystemObject") Folders="c:\windows\temp\*.*" Files="c:\windows\temp\*.*" wscript.echo "Delete some files" FSO.DeleteFolder(Folders) FSO.DeleteFile(Files) wscript.echo Files,"now deleted"
Mindre fejl = Hvis der er filer i windows/temp mappen som er i brug, så fejler den hele scriptet istedet for bare at droppe den og fortsætte med resten?
Dim FSO, Files, Folders set FSO=CreateObject("Scripting.FileSystemObject") Folders="c:\mstn\*.*" Files="c:\mstn\*.*" wscript.echo "Delete some files" on error resume next '<-- NY LINIE FSO.DeleteFolder(Folders) FSO.DeleteFile(Files) wscript.echo Files,"now deleted"
Du kunne også gøre det smartere, og tjekke på fejlkoden osv hvis du vil det
Ok, det var den mindre fejl, som virker med denne linie, har du også en ide om hvordan jeg kan finde alle temp mapperne og slette indholdet deri? Den aktuelle brugers mappe er jo her : fso.getspecialfolder(2) men den kan jeg ikke bruge til meget, da det jo gerne skulle ske for alle temp mapper på maskinen?
Find alle navne under under 'dokuments and settings' Som på en måde er taget fra stien her : fso.getspecialfolder(2) og så bare skifter brugernavnet ud.
For i = 1 to AntalUsers do slet /tem/*.* (og også mapper) loop
Kan ikke huske - hvad gør fso.getspecialfolder(2) ?
Du kan jo loope over alle foldere i 'dokuments and settings', tjekke om navnet er "temp", og hvis det er, kande din sletterutine, som du allerede har skrevet
Jeg ville gå ind i "c:\documents and settings\", og loope over alle undermapper, teste på navnet, og er navnet "temp" slettes filerne.
Måske kan man med fso direkte få listet alle brugeres temp-mapper, så er det naturligvis lettere. Jeg har ikek VB på denen masine, men du kan jo selv se hvilke metoder du kan bruge, der er muligvis en fso.find, fso.filesearch eller lignende.
Eksempel på "manuelt" loop:
Dim fso As Scripting.FileSystemObject Set fso = New Scripting.FileSystemObject
FindDir "temp", fso.GetFolder("c:\windows\documents and settings")
Private Sub FindDir(name As String, folder As Scripting.folder) Dim tmpFolder As Scripting.folder If folder.SubFolders.Count > 0 Then For Each tmpFolder In folder.SubFolders FindDir name, tempfolder '< REKURSIVT KALD Next End If
if lcase(tempfolder.name) = lcase(name) then 'KALD DIN SLETTERUTINE end if End Sub
Kan ikke huske om det hedder tempfolder.name eller tempfolder.foldername eller ..?
Det er stadig under Visual Basic, ikke under VB script. Og du skal nok lukke det ene, så du ikek ahr to ens spørgsmål.
Må indrømme at mit svar er skrevet med udgangspunkti Visual Baisc. Tag det du kan bruge og ret til. Eller eksperimenter med fso og de metoder der er til det - det står altsammen på msdn.
Good luck
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.