Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien
Toon posts:

Windows script om mappen te 'nesten'?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Bestaat er een programma of script waarmee je mappen kunt 'nesten'?
Dus alle mappen Aa* t/m Az* in een directory naar een submap A. En alle mappen Ba* t/m Bz* naar een map B. Et cetera.
Alles natuurlijk met behoud van de mapinhoud. (En liefst ook nog drie niveaus: A/Aa/Aap; N/No/Noot; M/Mi/Mies...)

Er bestaat een programma Dir Utils waarmee je bestanden in een map sorteert in mappen a t/m z, maar het gaat mij dus om de mappen zelf (met inhoud). Zoektermen als folders nesting directories alphabetically foldertree e.d. leiden tot niets...

  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
Tja,hoe geautomatiseerd wil je het hebben, en wat is de exacte dir-structuur waar je heen wilt.

In principe voldoet iets als :
Batchfile:
1
move A* ..\A\

aan je gegeven wensen als je het 26x uitvoert.

Verwijderd

Topicstarter
Werkt niet!? Ik draai dit in een testmap C:\hoofdmap met een tiental submappen aa~az, maar er gebeurt niets.
Ik vind met google ook niets over move en die puntjes.

Wat ik wil is submappen in een willekeurige hoofdmap verplaatsen naar submappen A t/m Z.
Dus C:\hoofdmap\aap wordt C:\hoofdmap\a\aap

Verwijderd

Topicstarter
Ik lees elders dat MOVE geen wildcards * accepteert: alleen als je de volledige mapnaam gebruikt wordt 'ie ook verplaatst. Gomez12: weet je zeker dat "move A*" meerdere mappen verplaatst?

XCOPY idem.
robocopy C:\movefolder C:\movefolder\0\A\ A* blijft continu lopen, maar verplaatst niets.

Het lijkt erop dat mappen niet met een batchfile en wildcard verplaatst kunnen worden. Het internet staat vol met verzoeken, maar ik vind geen werkende oplossingen.

  • pkouwer
  • Registratie: November 2001
  • Laatst online: 07-10 13:23
kun je niet iets met PowerShell in elkaar zetten? Lijkt me wel dat hier zoiets mee mogelijk is...

  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB

Front verplichte underscores

Het is natuurlijk niet de bedoeling een kant en klaar script te vragen / te krijgen. Waar loop je precies vast als je zelf een script maakt?
Zoektermen als folders nesting directories alphabetically foldertree e.d. leiden tot niets...
Je moet dan natuurlijk niet zoeken op specifiek scripts voor specifiek dit probleem, maar gewoon naar hoe je favoriete scriptingtaal in het algemeen werkt en en dan zelf iets maken.

Any scriptingtaal moet voor zoiets voldoen, zoiets valt "zelfs" in Excel + VBA wel te doen maar dat zou ik niet aanraden :+ Ik zou trouwens ook geen batch meer aanleren, ga dan voor iets dat meer toekomstvast is.

Bij drie niveaus ontkom je niet aan loopjes. Je wilt je dan misschien 'zelfs' inlezen in het concept van recursie.

[ Voor 72% gewijzigd door F_J_K op 11-05-2013 21:31 ]

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


  • Wim-Bart
  • Registratie: Mei 2004
  • Laatst online: 10-01-2021

Wim-Bart

Zie signature voor een baan.

Maak een .cmd bestanden:

Naam: MOVEIT.CMD
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
@ECHO OFF

REM DOELPAD is waar de folders aangemaakt moeten worden.

SET DOELPAD=D:\Data

FOR /D %%a IN (*.*) DO CALL :DOMOVE "%%a"
GOTO END

:DOMOVE
  SET NAME=%~1
  ECHO Naam is: %NAME%
  SET L1=%NAME:~0,1%
  ECHO Eerste letter is %L1%
  ROBOCOPY "%NAME%" "%DOELPAD%\%L1%" /COPYALL /MOVE /MIR /W:5 /R:3
  GOTO :EOF

:END


Of voor 2 niveaus diep:
Naam: MOVEIT.CMD
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
@ECHO OFF

REM DOELPAD is waar de folders aangemaakt moeten worden.

SET DOELPAD=D:\Data

FOR /D %%a IN (*.*) DO CALL :DOMOVE "%%a"
GOTO END

:DOMOVE
  SET NAME=%~1
  ECHO Naam is: %NAME%
  SET L1=%NAME:~0,1%
  SET L2=%NAME:~1,1%
  SET DP=%L1%\%L2%
  IF "%L2%"=="" SET DP=%L1%
  ECHO Eerste letter is %L1%
  ECHO Tweede letter is %L2%
  ROBOCOPY "%NAME%" "%DOELPAD%\%DP%" /COPYALL /MOVE /MIR /W:5 /R:3
  GOTO :EOF

:END


Of voor 3 niveaus diep:
Naam: MOVEIT.CMD
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
@ECHO OFF

REM DOELPAD is waar de folders aangemaakt moeten worden.

SET DOELPAD=D:\Data

FOR /D %%a IN (*.*) DO CALL :DOMOVE "%%a"
GOTO END

:DOMOVE
  SET NAME=%~1
  ECHO Naam is: %NAME%
  SET L1=%NAME:~0,1%
  SET L2=%NAME:~1,1%
  SET L3=%NAME:~2,1%
  SET DP=%L1%\%L2%\%L3%
  IF "%L3%"=="" SET DP=%L1%\%L2%
  IF "%L2%"=="" SET DP=%L1%
  ECHO Eerste letter is %L1%
  ECHO Tweede letter is %L2%
  ECHO Derde letter is %L3%
  ROBOCOPY "%NAME%" "%DOELPAD%\%DP%" /COPYALL /MOVE /MIR /W:5 /R:3
  GOTO :EOF

:END

[ Voor 60% gewijzigd door Wim-Bart op 11-05-2013 21:47 ]

Beheerders, Consultants, Servicedesk medewerkers. We zoeken het allemaal. Stuur mij een PM voor meer info of kijk hier De mooiste ICT'er van Nederland.

Pagina: 1