Come eliminare ricorsivamente la directory dalla riga di comando in Windows?


Risposte:


342

deltreese ricordo il mio DOS .


Sembra che sia stato aggiornato ... questo è quello che vuoi:

RMDIR /S

Questo rimuove la directory C:\test, con prompt:

rmdir c:\test /s

Questo fa lo stesso, senza istruzioni:

rmdir c:\test /s /q

Per quanto riguarda la parte sudo della tua domanda, se hai bisogno di più privilegi, puoi prima aprire una nuova shell come un altro account utente usando il runascomando, in questo modo:

runas /user:Administrator cmd
rmdir c:\test /s /q

1
@FarmBoy, mi scuso, sembrerebbe che i miei ricordi siano troppo lontani. Ho aggiornato la risposta per Windows XP e versioni successive.
Colin Pickard,

8
deltreeè un vecchio comando DOS. Fu rimosso in XP e sostituito darmdir /s
heavyyd il

3
Cosa significa la bandiera / s?
Mike R,

Per qualche motivo c'è un problema se lo fai in Powershell. Quindi basta usare la riga di comando di Windows.
Devid

3
@MikeR, potrebbe significare "sottodirectory" o qualcosa del genere. findstrha lo stesso parametro, il che ha più senso nel suo caso, quindi forse sono uguali per coerenza.
Sam,

57

Se vuoi eliminare dal prompt dei comandi una struttura di cartelle lunga e complicata che RmDir non toccherà e nemmeno Explorer può visualizzare, ho scoperto che robocopy può essere molto efficiente nel rimuovere la struttura. Nell'esempio seguente abbiamo una struttura enorme all'interno dell'amministratore della cartella, la struttura è così profonda che nulla può rimuoverla. Creiamo una nuova cartella vuota chiamata (stranamente!) "Nuova cartella". Quindi utilizziamo il comando robocopy, dicendo che la cartella di origine è "nuova cartella" e la cartella di destinazione è "D: \ Administrator" con il parametro / MIR, il che significa che eliminerà tutto ciò che non è nella cartella di origine.

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

In questo caso i percorsi delle cartelle erano così lunghi da non rientrare nemmeno nella finestra del prompt dei comandi Screen Buffer, ma Robocopy attraverserà la struttura e rimuoverà tutti i file e le cartelle "extra" (ovvero qualsiasi cosa non nella nuova cartella vuota, che è tutto ).


11
Questa è l'unica soluzione che funzionerà quando il tuo percorso è lungo più di 250 caratteri dispari
Calm Storm

10

In PowerShell puoi eseguire le seguenti operazioni, se utilizzi Windows Vista +:

rm C:\path\to\delete -r -f[orce]

6
Windows 10 dice che -fè ambiguo. Ma puoi corrererm -r -force <path>
BrunoLM il

6

Per me, ciò che funziona è

del /s dir

È possibile aggiungere /qper disabilitare la conferma. Non sono mai riuscito a rmdirlavorare (su XP)


6
Probabilmente dovresti smettere di usare XP, non è più supportato ...
Eric Wilson,

3
Per me, questo rimuove tutti i file in modo ricorsivo, ma non sta eliminando le directory stesse - dirnon viene rimosso.
sergiol,

2

Se hai un percorso davvero molto lungo, (come ho fatto a causa di un errore del programma Java), anche Robocopy non può farlo. Scese per circa 30 secondi sul mio cammino e poi rimase sospeso.

La mia soluzione: se riesci a spostare l'intero percorso del problema da una cartella all'altra, puoi tagliare ricorsivamente e ripetutamente alcune scale della directory dall'alto.

Questo batch gioca a pingpong tra le due directory leer e leer2 e taglia ogni volta 8 "librerie". Se il tuo percorso contiene file, devi aggiungere ulteriori comandi per cancellarli.

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

2

Da CMD Basta eseguire RD / s C: \ path \ to \ delete Premere Y al prompt

/ s garantisce che anche tutte le sottodirectory vengano eliminate.

Riferimento Esegui help RD dalla riga di comando


2
Grazie per la risposta, ma questa informazione era già nella risposta accettata. ( rde rmdirsono uguali). Forse potrebbe andare bene come commento lì.
Ben N

0

Questo eliminerà "la mia cartella" senza prompt:

rd /s /q "C:\Users\gourav.g\AppData\Roaming\my folder"
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.