Alle mappen verwijderen, uitgezonderd met specifieke naam

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • skelleniels
  • Registratie: Juni 2005
  • Laatst online: 20-08 13:07
Ik moet momenteel in een map van 5000+ folders alles verwijderen, maar wel telkens de mappen met een specifieke naam behouden. Structuur als volgt:

Rootmap
-Map1
---Test1
---Test2
---Test3
---Tebehoudenmap
-Map2
---Test1
---Test2
---Test3
-Map3
---Test1
---Test2
---Test3
---Tebehoudenmap

Hierbij wil ik dus enkel volgende structuur overhouden:
Rootmap
-Map1
---Tebehoudenmap
-Map3
---Tebehoudenmap

Via Powershell had ik al het volgende uitgevonden:
remove-item -recurse D:\Rootmap\* -exclude 'Tebehoudenmap'

Maar enkel als ik de 'Tebehoudenmap' in de rootmap zelf zet, houdt hij deze, al de rest smijt hij weg. Ik slaag er dus niet in om hem te laten kijken in de submappen naar deze specifieke map. Iemand met meer ervaring in Powershell die mij verder op weg kan helpen? _/-\o_

http://specs.tweak.to/16567

Alle reacties


Acties:
  • 0 Henk 'm!

  • pacificocean
  • Registratie: Mei 2006
  • Laatst online: 27-09 14:04
is het niet -exclude '*\Tebehoudenmap' ?

Acties:
  • 0 Henk 'm!

  • MAX3400
  • Registratie: Mei 2003
  • Laatst online: 22:07

MAX3400

XBL: OctagonQontrol

Remove-Item is de verkeerde syntax.

code:
1
2
3
4
5
Get-ChildItem -Path  'C:\temp' -Recurse |
Select -ExpandProperty FullName |
Where {$_ -notlike 'C:\temp\foldertokeep*'} |
sort length -Descending |
Remove-Item -force

Test dit even maar je moet dus je full path querien en daarna pas wegmikken.

[ Voor 14% gewijzigd door MAX3400 op 23-04-2018 17:13 ]

Mijn advertenties!!! | Mijn antwoorden zijn vaak niet snowflake-proof


Acties:
  • 0 Henk 'm!

  • DutchKel
  • Registratie: Mei 2002
  • Laatst online: 00:06
Voor de verkenner kun je rechtsboven zoeken met NOT Tebehoudenmap

Alle resultaten die je dan op het scherm hebt bevatten niet de Tebehoudenmap, je kunt het ook controleren.

Edit: Let op als je de root map recursief verwijderd dan is de Tebehoudenmap ook weg, powershell is wellicht beter hiervoor.

[ Voor 26% gewijzigd door DutchKel op 23-04-2018 17:18 ]

Don't drive faster than your guardian angel can fly.


Acties:
  • 0 Henk 'm!

  • skelleniels
  • Registratie: Juni 2005
  • Laatst online: 20-08 13:07
MAX3400 schreef op maandag 23 april 2018 @ 17:12:
Remove-Item is de verkeerde syntax.

code:
1
2
3
4
5
Get-ChildItem -Path  'C:\temp' -Recurse |
Select -ExpandProperty FullName |
Where {$_ -notlike 'C:\temp\foldertokeep*'} |
sort length -Descending |
Remove-Item -force

Test dit even maar je moet dus je full path querien en daarna pas wegmikken.
Hmm, de ene map laat hij staan en de andere niet of hij doet de submap weg en laat wel de bovenliggende map staan... Het is net alsof hij enkel maar kijk naar C:\temp\foldertokeep, maar hij zou moeten in alle subfolders kijken of er een map in staat met die naam. In mijn geval doet hij momenteel Map1, Map2 en Map3 volledig weg en houdt hij geen rekening met Tebehoudenmap.

[ Voor 19% gewijzigd door skelleniels op 24-04-2018 16:53 ]

http://specs.tweak.to/16567


Acties:
  • 0 Henk 'm!

  • skelleniels
  • Registratie: Juni 2005
  • Laatst online: 20-08 13:07
Iemand nog een idee wat ik eventueel mis doe/kan doen?

Ik las ergens dat het eventueel kan te maken hebben met de laatste versie van Powershell dat dit niet meer goed loopt(bug oid?)

[ Voor 54% gewijzigd door skelleniels op 26-04-2018 18:06 ]

http://specs.tweak.to/16567


Acties:
  • 0 Henk 'm!

  • ElCondor
  • Registratie: Juni 2001
  • Laatst online: 26-09 15:03

ElCondor

Geluk is Onmisbaar

Ik denk dat het komt omdat PS van hoger niveau naar lager niveau selecteerd en je eigenijk op het diepste niveau wilt beginnen en dan langzaam lever voor elvel omhoog wilt gaan om de betreffende folders al dan niet te verwijderen.

Dat kan dan eigenlijk alleen met een custom functie.

Hier is een artikel die een soortgelijk geval omschrijft en daar worden wat ideetjes gespuit, maar nog niet een echte oplossing. Wellicht kun jij hier toch iets mee:
https://stackoverflow.com...sub-folder-to-highest-one

En hier is er nog een om met PS het diepste pad te vinden. Mogelijk ook iets waar je wat mee kunt. Het is wel een leuk vraagstuk waar je mee zit:
https://powershellposse.com/2015/12/17/find-deepest-path/

[ Voor 15% gewijzigd door ElCondor op 30-04-2018 15:49 ]

Hay 365 dias en un año y 366 occasiones para festejar (Boliviaans spreekwoord)

Pagina: 1