Come cancellare ricorsivamente la directory dalla riga di comando in windows?
Qual è l'equivalente di windows di rm -r [directory-name]
?
Qual è l'equivalente di windows di rm -r [directory-name]
?
. deltree
se ricordo il mio DOS
Sembra che sia stato aggiornato… questo è quello che vuoi:
RMDIR /S
**
Questo rimuove la directory C:\test
, con i prompt :
rmdir c:\test /s
``` ```
rmdir c:\test /s /q
Questo fa lo stesso, senza prompt :
runas /user:Administrator cmd
rmdir c:\test /s /q
``` &001
Per quanto riguarda la parte sudo della vostra domanda, se avete bisogno di più priviligi, potete prima aprire una nuova shell come un altro account utente usando il comando `runas`, come questo:
&001
Se si vuole cancellare una lunga e complicata struttura di cartelle dal prompt dei comandi che RmDir non toccherà e che nemmeno Explorer può visualizzare, ho trovato che robocopy può essere molto efficiente nel rimuovere la struttura. Nell'esempio qui sotto abbiamo una struttura massiccia all'interno dell'amministratore delle cartelle, la struttura è così profonda che nulla può rimuoverla. Creiamo una nuova cartella vuota chiamata (stranamente!) “nuova cartella”. Utilizziamo quindi il comando robocopy, dicendogli che la cartella sorgente è “nuova cartella” e la cartella di destinazione è “D:\Administrator” con il parametro /MIR che significa che eliminerà tutto ciò che non è nella cartella sorgente.
robocopy "D:\new folder" D:\Administrator /MIR
``` &001
In questo caso i percorsi delle cartelle sono così lunghi che non entrerebbero nemmeno nella finestra del prompt dei comandi Screen Buffer, ma Robocopy attraverserà la struttura e rimuoverà qualsiasi file e cartella "extra" (cioè tutto ciò che non è nella nuova cartella vuota, che è tutto).
Potete fare quanto segue in PowerShell, se siete su Windows Vista+ :
rm C:\path\to\delete -r -f[orce]
Per me, ciò che funziona è
del /s dir
``` &001
È possibile aggiungere `/q` per disabilitare la conferma. Non sono mai riuscito a far funzionare `rmdir` (su XP)
Se si ha un percorso davvero molto lungo, (come ho fatto io a causa di un errore del programma java), anche robocopy non può farlo. È sceso per circa 30sec nel mio percorso e poi è rimasto appeso.
La mia soluzione: se si può spostare l'intero percorso del problema da una cartella all'altra, allora si possono tagliare via ricorsivamente e ripetutamente alcune scale di directory dall'alto.
Questo Batch gioca a pingpong tra le due directory leer e leer2 e taglia via 8 ‘librerie’ ogni volta. Se il vostro percorso contiene dei file, dovete 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
Da CMD Basta eseguire RD /s C:\ \ percorso \cancellare Hit Y al prompt
/s assicura che anche tutte le sottodirectory siano cancellate.
Riferimento Esegui aiuto RD dalla riga di comando
Questo cancellerà “la mia cartella” senza richiedere:
rd /s /q "C:\Users\gourav.g\AppData\Roaming\my folder"