h_veile
(16.835 point. Point ude: 0)
Batchfil til oprettelse af mappe med 4 undermapper
Hej
Jeg sidder og gør mig nogle overvejelser over hvordan jeg kan lave en batch fil, som kan oprette een mappe, som er navngivet udfra bruger input og hvor der er fire undermapper med fast betegnelse eks. mappe1, mappe2, etc.
Er der nogle der kan lede mig på sporet ?
Det skal siges at batch filen skal kunne afvikles på windows 2000 & XP
Skrevet tir. d. 12. august 2003 kl. 00:29:14| #1
noget i denne stil?
md %1
cd %1
md mappe1
md mappe2
md mappe3
md mappe4
Skrevet tir. d. 12. august 2003 kl. 00:29:48| #2
Batch-filen til at oprette en mappe med 4 undermapper er således:
d:
cd\
md Mnavn
md Mnavn\Kat1
md Mnavn\kat2
md mnavn\kat3
md mnavn\kat4
Skrevet tir. d. 12. august 2003 kl. 00:35:08| #3
Ja det ser meget rigtigt ud, men hvordan får jeg navngivet den øverste mappe i hirakiet udfra navn som brugeren skal kunne indtaste?
Skrevet tir. d. 12. august 2003 kl. 00:36:24| #4
Hvorfra kommer brugerens input?
Det vil afgøre, hvilken løsning der skal vælges videre frem.
Skrevet tir. d. 12. august 2003 kl. 00:37:36| #5
Den skal komme fra en indtastning som skal kunne flettes ind i batch filen om muligt og som så navgiver den øverste mappe.
Skrevet tir. d. 12. august 2003 kl. 00:39:10| #6
Hvis det er en batch-fil af den type som squashguy foreslår sker det således:
På en kommando linie skriver brugeren f.eks.
make.bat Mnavn Kat1 Kat2 kat3 kat4
og sår skal %1, %2 etc svare til navnene Mnavn, Kat1,...
Skrevet tir. d. 12. august 2003 kl. 00:41:03| #7
Ja, men er det muligt at lave et stop i scriptet, som så giver brugeren mulighed for at navngive den øverste mappe eller skal jeg over i en anden script form. ?
Skrevet tir. d. 12. august 2003 kl. 00:41:05| #8
En anden løsning er at lave et VBscript, som spørger om de forskellige navne i inputboxe, og derefter opretter mapperne.
Det er også hurtigt lavet.
Hvad ønsker du?
Skrevet tir. d. 12. august 2003 kl. 00:43:29| #9
Du kan prompte brugeren for indput ved at bruge "set /P", skriv "help set" i en kommando prompt for at finde ud af hvordan du bruger den.
Skrevet tir. d. 12. august 2003 kl. 00:44:08| #10
VB scriptet er umiddelbart løsningen jeg har brug for.
Hvis jeg der kan lavet navngivning af den øverste mappe udfra bruger input de 4 undermapper hedder altid det samme.
Skrevet tir. d. 12. august 2003 kl. 00:48:05| #11
F.ex:
set /P root="Hvad skal roden hedde: "
md %root%
md %root%\sub1
md %root%\sub2
md %root%\sub3
md %root%\sub4
Skrevet tir. d. 12. august 2003 kl. 00:48:16| #12
løsning med bertelbranders forslag:
@echo off
echo Skriv navn på mappe og tryk enter:
set /p mappenavn=
md %mappenavn%
cd %mappenavn%
md mappe1
md mappe2
md mappe3
md mappe4
Skrevet tir. d. 12. august 2003 kl. 00:56:47| #13
Kan man lave det så et f.eks kundenr og et kundenavn sammensættes til fil navnet, idet jeg eller er nødt til at bruge - el._ som mellemrumstegn mellem kundenr og kundenavn?
Skrevet tir. d. 12. august 2003 kl. 00:56:58| #14
Her er VBscriptet:
Et VBscript, der opretter en mappe ser f.eks således ud:
Option Explicit
dim FSO, navn
set FSO=createObject("Scripting.Filesystemobject")
navn=inputbox("Indlæs mappenavn")
'hvis mappen skal være på d-drevet
navn="D:\" & navn
navn=
FSO.CreateFolder(navn)
nu er der lavet et katalog
Sådan kan man fortsætte.
Skrevet tir. d. 12. august 2003 kl. 01:01:37| #15
Ja man kan lave alt, når man gør det i VBscript.
Hvis f.eks. Knr="123" og Knavn="Olsen",
så kunne katalognavnet f.eks. være
"d:\" & Knavn & "_" & Knr dvs: d:\Olsen_123
Skrevet tir. d. 12. august 2003 kl. 01:03:23| #16
Det kune også være "Jensen og Olsen 123456"
Det er altså ikke nødvendigt med _ Du kan bruge mellemrum
Skrevet tir. d. 12. august 2003 kl. 01:04:00| #17
Du behøver ikke - eller _ til mappe navn, du kan bruge:
Set /P kundenr="KundeNr: "
Set /P kundenavn="KundeNavn: "
md %kundenr%%kundenavn%
Skrevet tir. d. 12. august 2003 kl. 01:05:13| #18
rettelse: jeg fik navn= for meget med. Det skal være sådan:
Option Explicit
dim FSO, navn
set FSO=createObject("Scripting.Filesystemobject")
navn=inputbox("Indlæs mappenavn")
'hvis mappen skal være på d-drevet
navn="D:\" & navn
navn=
FSO.CreateFolder(navn)
Hvis du gemmer ovenstående i en tekstfil med navnet lavKat.vbs,
skal du blot klikke på denne fil, så kører scriptet, og du kan få det testet.
Skrevet tir. d. 12. august 2003 kl. 01:06:37| #19
Du kan også bruge mellemrum, så skal du bruge:
md "%kundenr% %kundenavn%"
Skrevet tir. d. 12. august 2003 kl. 01:09:42| #20
Hvor er i gode ....
Hold hold - nu kan jeg snart ikke følge med, men jeg kan se at det jeg søger kan lade sig gøre
Tusind tak for hjælpen
Skrevet tir. d. 12. august 2003 kl. 01:13:59| #21
ups: jeg fik stadig ikke slettet linien 'navn='.
Hvis du vil have en mappe med et underkatalog sker det således:
option explicit
dim FSO, navn, kat
set FSO=createObject("Scripting.Filesystemobject")
navn=inputbox("Indlæs mappenavn")
'hvis mappen skal være på d-drevet
navn="D:\" & navn
FSO.CreateFolder(navn)
Kat=Inputbox("Undermappe:")
Fso.CreateFolder(navn & "\" & kat)
Nu er der oprettet en mappe med en undermappe.