Avatar billede fhansen82 Mester
07. april 2013 - 20:11 Der er 13 kommentarer og
1 løsning

VBScript variabel i sti

Hej

Jeg har problemer med at oprette en mappe via et VBScript. Oprettelsen af mappen inkluderer en variabel som er med til at navngive en mappe med dags dato. Men jeg bliver ved med at få en fejl i linjen hvor mappen oprettes. Linjen fungerer fint, hvis jeg udelader variablen. Her er min kode, som er forenklet, blot til at få løst lige dette problem.

1 Set objFSO = CreateObject("Scripting.FileSystemObject")
2 Set oShell = CreateObject("Wscript.Shell")
3 strYYYY = DatePart("yyyy",Now())
4 strMM = Right("0" & DatePart("m",Now()),2)
5 strDD = Right("0" & DatePart("d",Now()),2)
6 fulldate = strYYYY & "-" & strMM & "-" & strDD
7 Set sti = objFSO.CreateFolder("\\192.168.0.1\hd_samsung_hm500ji\Fællesdrev\test\UDB\" & fulldate)
8 MsgBox(sti)

Jeg får fejl i linje 7, at stien ikke findes.

Mvh

Frank
Avatar billede kabbak Professor
07. april 2013 - 21:49 #1
du skal jo sørge for at stien

\\192.168.0.1\hd_samsung_hm500ji\Fællesdrev\test\UDB\

er der i forvejen,inden du sætter datoen på
Avatar billede fhansen82 Mester
07. april 2013 - 21:58 #2
Nej, mappen skal oprettes. Som sagt virker det, hvis jeg fjerner variablen fra linjen.
Avatar billede kabbak Professor
07. april 2013 - 22:00 #3
hvis ikke mappen
\\192.168.0.1\hd_samsung_hm500ji\Fællesdrev\test\UDB
findes

kan du ikke oprette
\\192.168.0.1\hd_samsung_hm500ji\Fællesdrev\test\UDB\2013-04-07
Avatar billede fhansen82 Mester
07. april 2013 - 22:06 #4
Vil det sige, at jeg ikke kan oprette en mappe+undermappe samtidigt?
Avatar billede kabbak Professor
07. april 2013 - 22:07 #5
ja
Avatar billede fhansen82 Mester
07. april 2013 - 22:08 #6
Kan godt se, at det virker, hvis jeg starter med kun at angive UDB og derefter ny linje med UDB\variabel. Så tak for det. Man kan man ikke oprette flere mapper ad gangen?
Avatar billede fhansen82 Mester
07. april 2013 - 22:10 #7
Ahh, okay. Smid et svar.
Avatar billede kabbak Professor
07. april 2013 - 22:12 #8
Hvis du vil oprette flere af gangen, er du nødt til at køre en løkke, for at teste om mappen findes, hvis ikke så opret,
Avatar billede fhansen82 Mester
07. april 2013 - 22:16 #9
Kan du give et eksempel. Jeg er godt klar over funktionen, men er ikke så skrap til programmering endnu. Er lige starte :O)
Avatar billede kabbak Professor
07. april 2013 - 22:55 #10
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set oShell = CreateObject("Wscript.Shell")
strYYYY = DatePart("yyyy",Now())
strMM = Right("0" & DatePart("m", Now()), 2)
strDD = Right("0" & DatePart("d", Now()), 2)
fulldate = strYYYY & "-" & strMM & "-" & strDD

stien = Array("\\192.168.0.1\hd_samsung_hm500ji", "Fællesdrev", "test", "UDB") ' mapper

For i = 0 To UBound(stien)
sti = sti & stien(i)
'MsgBox (sti)
If NOT objFSO.FolderExists(sti)  Then
objFSO.CreateFolder (sti)
End If
sti = sti & "\"
Next

sti = sti & fulldate
objFSO.CreateFolder (sti)
MsgBox (sti)
Avatar billede fhansen82 Mester
07. april 2013 - 23:41 #11
Det ser smukt ud. Det tager jeg en dybere kigger på i morgen med friske øjne, men forstår det meste af det. Mange tak for hjælpen kabbak.

Hvis jeg vil oprette flere mapper, går jeg ud fra jeg bare tilføjer dem i variablen "stien" separeret med komma?

Hvad betyder UBound
Avatar billede kabbak Professor
08. april 2013 - 07:18 #12
"Hvis jeg vil oprette flere mapper, går jeg ud fra jeg bare tilføjer dem i variablen "stien" separeret med komma?"
ja

med UBound, får man at vide hvor mange data, der er i de forskellige dimensioner i variablen.

1. dimension, UBound(stien) alene er det samme som  UBound(stien,1)  = rækker
2. dimension,UBound(stien,2) = kolonner
3. dimension,UBound(stien,3) = dybden, en variabel kan godt være 3 dimensioner.
Avatar billede fhansen82 Mester
08. april 2013 - 07:32 #13
Kan jeg ikke tilføje variablen i arryet? ..."UDB", fulldate) ' mapper
Avatar billede fhansen82 Mester
08. april 2013 - 07:54 #14
Det kunne jeg. Testede lige selv :O)
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