ATTENZIONE: se si dispone di collegamenti simbolici alle directory, del
verranno eliminate le directory effettive e non i collegamenti simbolici. Fai molta attenzione e non eseguire questi comandi a meno che tu non sappia che non ci sono collegamenti simbolici nella directory di destinazione.
Ho regolarmente bisogno di eliminare molti file e directory da un'unità crittografata WinXP, in genere circa 22 GB di 500.000 file in 45.000 cartelle.
L'eliminazione con Esplora risorse di Windows è spazzatura perché spreca molto tempo a elencare i file. Di solito sposto le cose che devo cancellare in C: \ stufftodelete e ho un file batch deletestuff.bat in rmdir /s/q C:\stufftodelete
. Questo è programmato per funzionare di notte, ma a volte ho bisogno di eseguirlo durante il giorno, quindi più veloce è, meglio è.
Ecco i risultati di un rapido test di tempo di un piccolo campione di 5,85 MB di 960 file in 303 cartelle. Ho eseguito il metodo 1 seguito dal metodo 2, quindi ho ripristinato le directory di test.
Il metodo 1 rimuove i file e la struttura delle directory in un unico passaggio:
rmdir /s/q foldername
Il metodo 2 ha un primo passaggio per eliminare i file e l'output a zero per evitare il sovraccarico di scrivere sullo schermo per ogni singolo file. Un secondo passaggio quindi pulisce la struttura di directory rimanente:
del /f/s/q foldername > nul
rmdir /s/q foldername
- Metodo 1: 17.5s, 14.9s, 13.9s, 14.8s, 13.8s: media 14.98 secondi
- Metodo 2: 14.3s, 12.1s, 11.7s, 14.2s, 11.8s: media 12.82 secondi
Ecco i risultati di un altro test che utilizza 404 MB di 19.521 file in 3.243 cartelle:
- Metodo 1: 2 minuti e 20 secondi
- Metodo 2: 2 minuti 33 secondi
Quindi non c'è molto in esso, probabilmente troppo vicino per giudicare in un singolo test.
Modifica: ho eseguito nuovamente il test con molti più dati, questo è un caso tipico per me: 28,3 GB di 1.159.211 file in 146.918 cartelle:
- Metodo 1: 2h 15m, 2h 34m: media: 2 ore 25 minuti
- Metodo 2: 49m, 57m: media: 53 minuti
Caspita, il metodo 2 è quasi tre volte più veloce del metodo 1! Aggiornerò il mio deletestuff.bat!