Avatar billede Slettet bruger
30. januar 2007 - 09:35 Der er 6 kommentarer og
1 løsning

Slet bestemte mapper

Hej,

Jeg har brug for lidt hjælp til et script. Jeg skal slette alle mapper som starter med "sletMigxx" (xx er et tilfældigt tal). Det går også fint, men problemet opstår, hvis der ikke er nogen mapper, så fejler mit script. Hvordan undgår jeg det??

Mit script forløbing:

Dim slet
  Set slet = CreateObject("Scripting.FileSystemObject")
  slet.DeleteFolder "C:\testing\sletMig*", True


Nogen som kan hjælpe?
Avatar billede supertekst Ekspert
30. januar 2007 - 09:52 #1
Sub sletMappe()
Dim slet
On Error Resume Next          '<<<<
  Set slet = CreateObject("Scripting.FileSystemObject")
  slet.DeleteFolder "C:\testing\sletMig*", True
End Sub
Avatar billede martin_moth Mester
30. januar 2007 - 10:39 #2
Husk at tilføje referencen Microsoft Scripting Runtime i VB, ellers vil det ikke virke
Avatar billede Slettet bruger
30. januar 2007 - 10:48 #3
supertekst > Damm var det kun den ene linie. Smid et svar :-)


Tak for hjælpen
Avatar billede martin_moth Mester
30. januar 2007 - 12:38 #4
Og bemærk at ved On Error resume Next ignorere du ALLE potientielle fejl. Måske skulle du tjekke err.number der svarer til at mappen ikke findes, og så kun Resume Next hvis det er netop den fejl. Bare en bemærkning
Avatar billede supertekst Ekspert
30. januar 2007 - 14:18 #5
Det får du - og selv tak....
Avatar billede joern Nybegynder
30. januar 2007 - 16:20 #6
Hej.

"On Error Resume Next" ER en fristende kode at anvende, når noget ikke vil makke ret.
Som Martin skriver kan du teste på fejlkode, jeg har ikke lige tjek på hvilken, der handler om mapper, der ikke findes, måske er det "53 File not found"
Du kan også afstille at der udføres "resume" ved at sætte linien  "On error goto 0" efter de kommandoer, der sletter mapper.  Så hænger der ikke en "spring over fejl".
Avatar billede joern Nybegynder
30. januar 2007 - 16:27 #7
I et af mine projekter tester jeg på om en mappe findes.  Kunne ikke huske hvilket, så jeg søgre i stedet på "Eksperten" og fandt et spørgsmål, jeg har svaret på i 2004

If Len(Dir(brandsti, vbDirectory)) > 0 Then
        filemp3.Path = brandsti
      Else
        X = MsgBox("Den sti der er angivet til depot for brænding eksisterer ikke.", 48, "Medd. fra 'opstart musikdatabase'.")
  End If

http://www.eksperten.dk/spm/438025
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

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