mappen creeren in verschillende andere mappen met batch

Status
Niet open voor verdere reacties.

skai21

Gebruiker
Lid geworden
5 mrt 2009
Berichten
6
hallo,

ik zit hier met een vraag...

wij hebben hier een debiteurenarchief waarin dus allemaal mappen staan met klant namen..

het is de bedoeling dat in elke map(klantnaam) 5 andere mappen komen deze zijn:

werkbonnen, norman, netasq, GFI, microsoft en internet

het is dus de bedoeling dat het zo komt:
Oude situatie
- debiteuren archieft
.........- klant1
.........- klant 2
.........- klant 3

nieuwe situatie:
- debiteuren archieft
.........- klant1
................- Norman
................- Werbonnen
................- Netasq
................- GFI
................- Microsoft
................- Internet
.........- klant 2
................- Norman
................- Werbonnen
................- Netasq
................- GFI
................- Microsoft
................- Internet
.........- klant 3
................- Norman
................- Werbonnen
................- Netasq
................- GFI
................- Microsoft
................- Internet

nu had ik dit al proberen op te lossen met een heel simpel batch bestandje...
md "C:\Documents and Settings\kai\Bureaublad\test\klant1\Werkbonnen\"
md "C:\Documents and Settings\kai\Bureaublad\test\klant1\Norman\"
md "C:\Documents and Settings\kai\Bureaublad\test\klant1\Netasq\"
md "C:\Documents and Settings\kai\Bureaublad\test\klant1\GFI\"
md "C:\Documents and Settings\kai\Bureaublad\test\klant1\Microsoft\"
md "C:\Documents and Settings\kai\Bureaublad\test\klant1\Internet\"
dit werkte goed....

maar dan moet ik dit voor elke klant appart maken nu dacht ik misschien kan ik een wildcard gebruiken...

toen heb ik een aantal dingen geprobeerd
md "C:\Documents and Settings\kai\Bureaublad\test\*\Werkbonnen\"
md "C:\Documents and Settings\kai\Bureaublad\test\*\Norman\"
md "C:\Documents and Settings\kai\Bureaublad\test\*\Netasq\"
md "C:\Documents and Settings\kai\Bureaublad\test\*\GFI\"
md "C:\Documents and Settings\kai\Bureaublad\test\*\Microsoft\"
md "C:\Documents and Settings\kai\Bureaublad\test\*\Internet\"

maar dit ging ook niet goed...

is er iemand die mij hiermee vooruit kan helpen...


bij voorbaad dank
 
Laatst bewerkt:
Daar zal ongetwijfeld een stukje programmacode voor gemaakt kunnen worden.

Als het niet om te veel debiteuren gaat, kan je ook in de verkenner van windows bij de eerste klant de mappen aanmaken.
Vervolgens selecteer je binnen de mapnaam de nieuwe (nog lege) mappen en geeft met Ctrl-c de kopieer opdracht.
De volgende handeling is:
Pijltje naar beneden om naar de volgende mapnaam te gaan en Ctrl-v indrukken.
 
het gaat hier om 383 debiteuren...

dus daarom was ik opzoek naar een script
 
Maak een batchfile aan met de volgende inhoud.

@echo off
set local="c:\Archief"

md "%local%\%1\Werkbonnen\"
md "%local%\%1\Norman\"
md "%local%\%1\Netasq\"
md "%local%\%1\GFI\"
md "%local%\%1\Microsoft\"
md "%local%\%1\Internet\"


doe dan bv. klanten Klant1

Dan worden automatisch alle dirs aangemaakt.
 
Maak een batchfile aan met de volgende inhoud.

@echo off
set local="c:\Archief"

md "%local%\%1\Werkbonnen\"
md "%local%\%1\Norman\"
md "%local%\%1\Netasq\"
md "%local%\%1\GFI\"
md "%local%\%1\Microsoft\"
md "%local%\%1\Internet\"


doe dan bv. klanten Klant1

Dan worden automatisch alle dirs aangemaakt.
dit heb ik nu gedaan
@echo off
set local="C:\Documents and Settings\kai\Bureaublad\test"

md "%local%\%1\Werkbonnen\"
md "%local%\%1\Norman\"
md "%local%\%1\Netasq\"
md "%local%\%1\GFI\"
md "%local%\%1\Microsoft\"
md "%local%\%1\Internet\"


maar dit werkt niet is het nu niet de bedoeling dat ik %1 ook nog toewijs? want nu werkt het nog neit
 
Wat je moet doen is het volgende

Zeg dat het bestand maakklnt.cmd heet.

Dan tikje in maakklnt klant1 (Deze spatie is belangrijk)

dan word %1 automatich gevult met klant1.
 
maar dat wil dus nog zeggen dat ik nog 383 keer

maakklnt klant... in moet typen...?

is hier een andere mogelijkheid voor

ik heb een txt bestand waarin ik alle namen van de mappen heb staan
 
Je kan met dir /AD /B > bestand.txt een tekst bestand maken met alle klanten...
en met FOR /F %1 in bestand.txt DO ...
het bestand inlezen en per regel (=klant) iets uitvoeren..

Succes,
 
eerst had ik dit:
Code:
cd "klant1"
 goto 1  
 :naam1  
cd "klant2"
 goto 2  
 :naam2  

:1	
md	Norman
md	Werbonnen
md	Netasq
md	GFI
md	Microsoft
md	Internet
cd..	
goto naam1	
:2	
md	Norman
md	Werbonnen
md	Netasq
md	GFI
md	Microsoft
md	Internet
cd..	
pause

maar dit wil zeggen dat ik nog voor elke klant alles dubbel in dit script moet aanmaken...

nu wou ik iets met skinflowers advies gaan doen dus maakte ik dit:

Code:
@echo off
FOR /F %1 in bestand.txt DO	
md "%1"
cd "%1"

md	Norman
md	Werbonnen
md	Netasq
md	GFI
md	Microsoft
md	Internet
cd..		
exit

maar dan krijg ik de melding "bestand.txt niet verwacht op dit moment

iemand die weet wat ik er mee moet....
 
Laatst bewerkt:
Als het nog niet te laat is, dan denk ik dat dit je oplossing is:

Creeer een map "C:\Test"

Maak een bestand "C:\Test\klantdir.bat" met de volgende inhoud:

Code:
@echo off
set local="C:\Test"
echo Creating %1
md "%local%\%1\Werkbonnen\"
md "%local%\%1\Norman\"
md "%local%\%1\Netasq\"
md "%local%\%1\GFI\"
md "%local%\%1\Microsoft\"
md "%local%\%1\Internet\"

Maak een tweede bestand "C:\Test\klantnaam.bat" met de volgende inhoud:

Code:
@echo off
call klantdir Klant1
call klantdir Klant2
call klantdir Klant3
call klantdir Klant4
call klantdir Klant5
call klantdir Klant6

In het bestand "C:\Test\klantnaam.bat" voor elke klant een regel aanmaken.
Vervolgens kun je eenvoudig het bestand "C:\Test\klantnaam.bat" uitvoeren.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan