Avatar billede h_veile Nybegynder
12. august 2003 - 00:11 Der er 19 kommentarer og
2 løsninger

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
Avatar billede squashguy Nybegynder
12. august 2003 - 00:29 #1
noget i denne stil?

md %1
cd %1
md mappe1
md mappe2
md mappe3
md mappe4
Avatar billede nmh Nybegynder
12. august 2003 - 00:29 #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
Avatar billede h_veile Nybegynder
12. august 2003 - 00:35 #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?
Avatar billede nmh Nybegynder
12. august 2003 - 00:36 #4
Hvorfra kommer brugerens input?
Det vil afgøre, hvilken løsning der skal vælges videre frem.
Avatar billede h_veile Nybegynder
12. august 2003 - 00:37 #5
Den skal komme fra en indtastning som skal kunne flettes ind i batch filen om muligt og som så navgiver den øverste mappe.
Avatar billede nmh Nybegynder
12. august 2003 - 00:39 #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,...
Avatar billede h_veile Nybegynder
12. august 2003 - 00:41 #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. ?
Avatar billede nmh Nybegynder
12. august 2003 - 00:41 #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?
Avatar billede bertelbrander Novice
12. august 2003 - 00:43 #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.
Avatar billede h_veile Nybegynder
12. august 2003 - 00:44 #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.
Avatar billede bertelbrander Novice
12. august 2003 - 00:48 #11
F.ex:
set /P root="Hvad skal roden hedde: "
md %root%
md %root%\sub1
md %root%\sub2
md %root%\sub3
md %root%\sub4
Avatar billede squashguy Nybegynder
12. august 2003 - 00:48 #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
Avatar billede h_veile Nybegynder
12. august 2003 - 00:56 #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?
Avatar billede nmh Nybegynder
12. august 2003 - 00:56 #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.
Avatar billede nmh Nybegynder
12. august 2003 - 01:01 #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
Avatar billede nmh Nybegynder
12. august 2003 - 01:03 #16
Det kune også være "Jensen og Olsen 123456"
Det er altså ikke nødvendigt med _ Du kan bruge mellemrum
Avatar billede bertelbrander Novice
12. august 2003 - 01:04 #17
Du behøver ikke - eller _ til mappe navn, du kan bruge:
Set /P kundenr="KundeNr: "
Set /P kundenavn="KundeNavn: "
md %kundenr%%kundenavn%
Avatar billede nmh Nybegynder
12. august 2003 - 01:05 #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.
Avatar billede bertelbrander Novice
12. august 2003 - 01:06 #19
Du kan også bruge mellemrum, så skal du bruge:
md "%kundenr% %kundenavn%"
Avatar billede h_veile Nybegynder
12. august 2003 - 01:09 #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
Avatar billede nmh Nybegynder
12. august 2003 - 01:13 #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.
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