Elimina file o cartelle in modo ricorsivo su Windows CMD


135

Come posso eliminare ricorsivamente file o cartelle su Windows dalla riga di comando?

Ho trovato questa soluzione dove guidiamo sulla riga di comando ed eseguiamo questo comando.

Ho fornito un esempio con una cartella di estensione di file .svn:

for /r %R in (.svn) do if exist %R (rd /s /q "%R")

Cosa intendi con "dove percorriamo il sentiero" ?
Peter Mortensen,

Risposte:


129

Eseguire i seguenti passaggi:

  1. Apri il prompt dei comandi
  2. Cambia directory nel percorso richiesto
  3. Dai il seguente comando

    del /S *.svn
    

4
Non funziona per me, elimina solo i file nella directory corrente.
delphirules,

119

Le altre risposte non hanno funzionato per me, ma questo ha fatto:

del /s /q *.svn
rmdir /s /q *.svn

/ q disabilita Sì / No prompt

/ s significa eliminare i file da tutte le sottodirectory.


Penso che le mie esigenze siano le stesse di quello che stai cercando di fare: sto cercando di eliminare tutte le cartelle .svn in una directory di progetto e tutte le sottodirectory. Su Windows 2012, questa risposta non funziona per me. Sta eliminando la cartella .svn nella directory corrente, ma non da nessuna delle directory figlio.
Jim,

42

Puoi usarlo nello batscript:

rd /s /q "c:\folder a"

Ora, basta passare c:\folder aalla posizione della cartella. L'offerta è necessaria solo quando il nome della cartella contiene spazi.


Questo comando non funziona e genera un errore come indicato di seguito D: \> rd / s / q "D: \ Root a" Il sistema non è in grado di trovare il file specificato.
Abhayk,

5
A meno che la tua directory non abbia davvero un space anome, quindi lascia fuori quella parte.
Jesse Chisholm,

22
RMDIR path_to_folder /S

ex. RMDIR "C:\tmp" /S

Tieni presente che ti verrà chiesto se eliminerai davvero la cartella "C: \ tmp". Combinandolo con l'opzione / Q, la cartella verrà rimossa silenziosamente (ad es. RMDIR "C:\tmp" /S /Q)


8

Per la cancellazione dei file, ho scritto il seguente semplice file batch che ha eliminato ricorsivamente tutti i file .pdf:

del /s /q "\\ad1pfrtg001\AppDev\ResultLogs\*.pdf"
del /s /q "\\ad1pfrtg001\Project\AppData\*.pdf"

Anche per la directory locale possiamo usarlo come:

del /s /q "C:\Project\*.pdf"

Lo stesso può essere applicato per la cancellazione della directory in cui dobbiamo solo cambiare del con rmdir .


4

Se si desidera eliminare ricorsivamente un'estensione specifica, utilizzare questo:

For /R "C:\Users\Desktop\saleh" %G IN (*.ppt) do del "%G"

3

Puoi anche fare:

del /s /p *.{your extension here}

L' /prichiede di eseguire per ogni file trovato, se sei nervoso per l'eliminazione di qualcosa che non dovrebbe.


2

Utilizzare il comando rmdir di Windows

Cioè, rmdir / S / Q C: \ Temp

Sto anche usando quelli qui sotto da alcuni anni, perfettamente.

Scopri altre opzioni con: forfiles /?

Elimina ricorsivamente SQM / telemetria nella cartella Windows

forfiles /p %SYSTEMROOT%\system32\LogFiles /s /m *.* /d -1 /c "cmd /c del @file"

Elimina i file TMP di Windows in modo ricorsivo

forfiles /p %SYSTEMROOT%\Temp /s /m *.* /d -1 /c "cmd /c del @file"

Elimina i file e le cartelle TEMP dell'utente in modo ricorsivo

forfiles /p %TMP% /s /m *.* /d -1 /c "cmd /c del @file"


2

Per cancellare completamente una cartella con comandi nativi e ottenere un registro su ciò che è stato fatto.

ecco un modo insolito per farlo:

supponiamo di voler cancellare la directory d: \ temp

mkdir d:\empty
robocopy /mir d:\empty d:\temp
rmdir d:\empty

Questa è una soluzione molto intelligente che ha risolto il mio problema. Ho usato robocopy per copiare la mia directory AppData, senza pensare alla giunzione autoreferenziale. Questo è stato l'unico modo per rimuovere ricorsivamente tutti i file nascosti. Non dimenticare mai il / xj!
Chris Larabell,

0

Per i file nascosti ho dovuto usare quanto segue:

DEL /S /Q /A:H Thumbs.db

Obsoleto. Windows XP non è supportato da Microsoft Co.
Mesalcode

Ho dovuto usare questo per eliminare i file .dcm che erano rimasti da un ripristino di backup (Windows 10)
Gerald Murphy

0
dir /b %temp% >temp.list
for /f "delims=" %%a in (temp.list) do call rundll32.exe advpack.dll,DelNodeRunDLL32 "%temp%\%%a"
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.