Toon posts:

submappen maken in meerdere directory's

Pagina: 1
Acties:
  • 178 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
hallo,

ik heb hier een projectschijf met daarin ong 1200 mappen. in al deze mappen moet 1 submap erbij komen genaamd facturen. handmatig is dit zeer vervelend werk, ik heb gezocht maar ik kon niets op google en dit forum vinden. bestaat er een geautomatizeerde oplossing voor dit probleem? die 1200mappen in 1 keer erin spuugt

[ Voor 6% gewijzigd door Verwijderd op 08-02-2006 10:37 ]


  • Dunka
  • Registratie: Augustus 2005
  • Laatst online: 20:27
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set objFSO = CreateObject("Scripting.FileSystemObject")

strFolderName = "C:\"
strCopyPath = "\facturen"

Set colSubfolders = objWMIService.ExecQuery _
    ("Associators of {Win32_Directory.Name='" & strFolderName & "'} " _
        & "Where AssocClass = Win32_Subdirectory " _
            & "ResultRole = PartComponent")

For Each objFolder in colSubfolders
    Set objFolder = objFSO.CreateFolder(objFolder.name & strCopyPath)
Next


Opslaan als bestand.vbs en strFolderName waarde aanpassen naar projectschijf.

Verwijderd

maakmap.bat maken:
code:
1
2
3
4
5
6
7
8
rem DOS bestandje voor iets wat je eigenlijk gewoon aan stagiaires moet overlaten
rem
rem
@echo off
mkdir ".\%1\facturen"
rem
rem
rem Einde filetje dat je best kan vervangen door een stagiair


en dan maak je even een lijstje van die 1200 mappen in een .txt bestandje
code:
1
dir /b /a:d >dirlijst.txt


Je output ziet er dan zo uit:
code:
1
2
3
4
5
6
7
8
9
10
dumpevt
Exchange Server
hierruudgoedkijken
intranet
Logs
Nokia 9500
Opslag en Tools
reut
scripts
Taken en Gegevens


en vervolgens pas je dirlijst.txt aan door bij elke regel er "call maakmap.bat " voor te zetten.
Dan heb je dit:
code:
1
2
3
4
5
6
7
8
9
10
call maakmap.bat dumpevt
call maakmap.bat Exchange Server
call maakmap.bat hierruudgoedkijken
call maakmap.bat intranet
call maakmap.bat Logs
call maakmap.bat Nokia 9500
call maakmap.bat Opslag en Tools
call maakmap.bat reut
call maakmap.bat scripts
call maakmap.bat Taken en Gegevens


dirlijst.txt opslaan en dan
code:
1
ren dirlijst.txt dirlijst.bat

en dan kopieer je beide .bat files naar de map waar al die 1200 mappies in staan, en doe je dirlijst.bat uitvoeren.

Kind kan de was doen: basiskennis Windows- en DOS. Als je Linux gebruikt werkt het net zo maar zijn de commando's anders.

Verwijderd

Topicstarter
danku dunka, werkt perfect.

  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 18-08 22:57

Gerco

Professional Newbie

Of je doet dit:
code:
1
C:\> FOR /D %1 IN (D:\hier\je\rootmap\*) DO @mkdir "%1\Facturen"


Geen batchfiles of omwegen voor nodig. Tik eens "HELP FOR" in op de commandline en ontdek een wereld aan mogelijkheden. FOR is zonder twijfel het krachtigste commando op de Windows commandline, al mag het nog niet in de schaduw van dingen als "find" en "grep" staan.

@Knettergek:
In linux werkt het niet op de manier die je beschrijft (nou ja, het kan wel, maar is oneindig veel onslachtiger dan nodig). In Linux doe je (ook) gewoon zo:
code:
1
gerco@server ~ $ find -type d -maxdepth 1 -exec mkdir "{}/Facturen" \;

[ Voor 52% gewijzigd door Gerco op 08-02-2006 12:25 ]

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


Verwijderd

Gerco schreef op woensdag 08 februari 2006 @ 12:18:
Of je doet dit:
code:
1
C:\> FOR /D %1 IN (D:\hier\je\rootmap\*) DO @mkdir "%1\Facturen"


Geen batchfiles of omwegen voor nodig. Tik eens "HELP FOR" in op de commandline en ontdek een wereld aan mogelijkheden. FOR is zonder twijfel het krachtigste commando op de Windows commandline, al mag het nog niet in de schaduw van dingen als "find" en "grep" staan.

@Knettergek:
In linux werkt het niet op de manier die je beschrijft (nou ja, het kan wel, maar is oneindig veel onslachtiger dan nodig). In Linux doe je (ook) gewoon zo:
code:
1
gerco@server ~ $ find -type d -maxdepth 1 -exec mkdir "{}/Facturen" \;
oh, ik maakte wel een shellscriptje :) Maar zoals je ziet ben ik niet zo thuis in FOR en al helemaal niet in Linux ;)
Pagina: 1