02. december 2004 - 16:03Der er
16 kommentarer og 1 løsning
Find og slet relevante biblioteker
Hej
Jeg skal bruge et lille script, som søger sig igennem en biblioteksstruktur og sletter nogle underbiblioteker ved navn "deleted" og "sent".
Struktur (f.eks.): \Postoffices\domain1\mailroot\emailadresse1\deleted
Bemærk at der er flere domæner, som har flere e-mail-adresser og i disse skal kun "deleted" og "sent" bibliotekerne slettes.
Hvis dette kan løses på andre måder end ved asp (f.eks. via noget batch-kørsel, avanceret form for delete i dos, eller via programmering af en eksekverbar fil, så løser det også opgaven).
sub ChkDelFolder(f) for each folder in f.Subfolders if (folder.name="delete") or (folder.name="sent") then folder.delete() else ChkDelFolder(folder) next end sub
startFolder="./" dim folder,folderCol Set objFSO = Server.CreateObject("Scripting.FileSystemObject") set folder = objFSO.getFolder(server.MapPath(startFolder)) ChkDelFolder(folder) set folder = nothing set objFSO = nothing
Havde nok selv valgt et script hvis du alligevel har adgang til serveren. Det ser sådan ud - næsten magen til og skal bare gemmes som navn.vbs sub ChkDelFolder(f) for each folder in f.Subfolders if (folder.name="delete") or (folder.name="sent") then folder.delete() else ChkDelFolder(folder) next end sub
startFolder="C:\minfolder\folder" dim folder,folderCol Set objFSO = WScript.CreateObject("Scripting.FileSystemObject") set folder = objFSO.getFolder(startFolder) ChkDelFolder(folder) set folder = nothing set objFSO = nothing
det virker på samme måde. Du gemmer bare filen som minfil.vbs og filen køres ved at dobbletklikke på den, og den kan også bare lægges i scheduleren, men hvis du har mere styr på asp, så bruger du bare det :-)
Men jeg tror, at vi mangler et ekstra loop, fordi den leder efter "deleted" og "sent" inde i "C:\Program Files\Mail Enable\Postoffices" og det skal den ikke.
Den skal ind i hver oprettet postkontor og checke efter "deleted" og "sent".
sub ChkDelFolder(f) for each folder in f.Subfolders if (folder.name="delete") or (folder.name="sent") then 'tester først 'folder.delete() response.write "sletter" else ChkDelFolder(folder) end if next end sub
startFolder="C:\Program Files\Mail Enable\Postoffices" dim folder,folderCol Set objFSO = WScript.CreateObject("Scripting.FileSystemObject") set folder = objFSO.getFolder(startFolder) ChkDelFolder(folder) set folder = nothing set objFSO = nothing
prøv følgende, det er ikke testet sub ChkDelFolder(f) for each folder in f.Subfolders if (folder.name="delete") or (folder.name="sent") then 'tester først 'folder.delete() response.write "sletter" else ChkDelFolder(folder) end if next end sub
startFolder="C:\Program Files\Mail Enable\Postoffices" dim folder,folderCol Set objFSO = WScript.CreateObject("Scripting.FileSystemObject") set f = objFSO.getFolder(startFolder)
for each folder in f.subfolders ChkDelFolder(folder) next set folder = nothing set objFSO = nothing
Jubii, så nu fandt den noget, men den er ikke glad for:
response.write "sletter"
Hvad skal jeg så skriv? Jeg vil gerne lige udskrive biblioteksnavnet - på en anden anden måde i min test - inden den får lov til at slette løs hver nat ;-)
Takker mange gange for hjælpen - det var alle 200 points værd det svar :-)
Nu slipper jeg for at købe den dyre version af en mailserver, men kan nøjes med den billige, som med lidt udbygninger her og der, kan det samme som dyre version.
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.