Hvordan sletter jeg rekursivt katalog fra kommandolinjen i Windows?

Hva er Windows-ekvivalenten til rm -r [katalognavn]?

Løsning

deltre hvis jeg husker min DOS.


Det ser ut til at det har blitt oppdatert... dette er det du vil ha:

Dette fjerner katalogen C:\test, med ledetekster:

rmdir c:\test /s

Dette gjør det samme, uten spørsmål:

rmdir c:\test /s /q

Når det gjelder sudo-delen av spørsmålet ditt, hvis du trenger flere privilegier, kan du først åpne et nytt skall som en annen brukerkonto ved hjelp av kommandoen runas, som dette:

runas /user:Administrator cmd
rmdir c:\test /s /q
Kommentarer (7)

Hvis du vil slette en lang og komplisert mappestruktur fra ledeteksten som RmDir ikke vil berøre og ikke engang explorer kan vise, har jeg funnet ut at robocopy kan være veldig effektiv til å fjerne strukturen. I eksemplet nedenfor har vi en massiv struktur inne i mappen administrator, strukturen er så dyp at ingenting kan fjerne den. Vi oppretter en ny tom mappe som heter (merkelig nok!) "ny mappe". Vi bruker deretter robocopy-kommandoen og forteller den at kildemappen er "ny mappe" og målmappen er "D:\Administrator" med parameteren /MIR, noe som betyr at den vil rense alt som ikke er i kildemappen.

robocopy "D:\new folder" D:\Administrator /MIR

I dette tilfellet var mappebanene så lange at de ikke engang ville passe inn i ledetekstvinduet Skjermbuffer, men Robocopy vil krysse strukturen og fjerne alle "ekstra" filer og mapper (dvs. alt som ikke er i den nye tomme mappen, som er alt).

Kommentarer (1)

Hvis du har en veldig veldig lang bane, (som jeg gjorde på grunn av java-programfeil), kan ikke engang robocopy gjøre det. Den gikk ned i omtrent 30 sekunder i banen min og hang deretter.

Min løsning: Hvis du kan flytte hele problembanen fra en mappe til en annen, kan du kutte bort rekursivt og gjentatte ganger noen katalogtrapper fra toppen.

Denne batchen spiller pingpong mellom de to katalogene leer og leer2 og kutter bort 8 ' biblioteker ' hver gang. Hvis banen din inneholder filer, må du legge til flere kommandoer for å slette dem.

recurdel.cmd
:loop
move c:\leer\libraries\libraries\libraries\libraries\libraries\libraries\libraries\libraries c:\leer2
rd /S /Q c:\leer\libraries
move c:\leer2\libraries\libraries\libraries\libraries\libraries\libraries\libraries\libraries c:\leer
rd /S /Q c:\leer2\libraries
GOTO loop
Kommentarer (0)