Avatar billede axkris Nybegynder
02. december 2004 - 16:03 Der 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).
Avatar billede tofte Juniormester
02. december 2004 - 16:53 #1
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
Avatar billede tofte Juniormester
02. december 2004 - 16:55 #2
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
Avatar billede axkris Nybegynder
02. december 2004 - 17:13 #3
Fedt, takker :-)

Har adgang til serveren (min egen server på internet), men hvordan køres din vbs-fil (nu hvor du anbefaler at køre det som et script)?
Avatar billede axkris Nybegynder
02. december 2004 - 17:16 #4
...script... jeg tænker på scheduleren (f.eks. kl. 03:00 hver nat). Script skal bruges til at purge folks slettede og sendt post.

Nu valgte jeg lige asp, fordi det er det sprog jeg er bedst i (dermed ikke sagt at jeg er go i det ;-)
Avatar billede tofte Juniormester
02. december 2004 - 17:21 #5
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 :-)
Avatar billede axkris Nybegynder
02. december 2004 - 17:36 #6
Takker igen :-)

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".

F.eks.: C:\Program Files\Mail Enable\Postoffices\MitPostKontor1\

Bemærk at jeg har flere postkontorer.

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
Avatar billede tofte Juniormester
02. december 2004 - 17:41 #7
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
Avatar billede axkris Nybegynder
02. december 2004 - 17:41 #8
Sorry

Den skal ind i hver oprettet postkontor... = Den skal ind i hver oprettet postkontorS EMAIL-ADRESSE...

Hele struktur er:

C:\Program Files\Mail Enable\Postoffices\MyDomainDK1\mailroot\webmaster

Hvilket er lig med webmaster@MyDomain1.dk
Avatar billede axkris Nybegynder
02. december 2004 - 17:42 #9
Ok, så ikke lige at du havdet postet et svar. Jeg tester lige.
Avatar billede tofte Juniormester
02. december 2004 - 17:44 #10
hvis det ikke er sådan du vil have det, skal jeg lige have skåret ud i pap hvor den skal kigge og hvor den ikke skal kigge :-)'

Ovenstående skal være med den oprindelige funktion ChkDelFolder
Avatar billede axkris Nybegynder
02. december 2004 - 17:48 #11
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 ;-)
Avatar billede axkris Nybegynder
02. december 2004 - 17:48 #12
anden anden = en eller anden
Avatar billede tofte Juniormester
02. december 2004 - 19:24 #13
Brug
msgbox folder.name
Avatar billede axkris Nybegynder
02. december 2004 - 20:15 #14
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.
Avatar billede axkris Nybegynder
02. december 2004 - 20:16 #15
Ups, kom selv til at trykke svar... men du fik dine points :)
Avatar billede tofte Juniormester
02. december 2004 - 21:33 #16
Ja, der kan man se, hvad man selv kan lave med 10 linier :-) Tak for points
Avatar billede axkris Nybegynder
11. december 2004 - 14:33 #17
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester