WAARSCHUWING: als je symlinks hebt naar directories dan zal del
de eigenlijke directories verwijderen en niet de symlinks. Wees hier heel voorzichtig mee en voer deze commando’s niet uit tenzij je weet dat er geen symlinks in de doelmap staan.
Ik moet regelmatig veel bestanden en directories verwijderen van een schijf met WinXP encryptie, meestal zo'n 22 GB met 500.000 bestanden in 45.000 mappen.
Verwijderen met Windows Verkenner is waardeloos omdat het veel tijd verspilt met het opsommen van de bestanden. Ik verplaats meestal de dingen die ik moet verwijderen naar C:\stufftodelete en heb een deletestuff.bat batch bestand naar rmdir /s/q C:\stufftodelete
. Dit is gepland om ‘s nachts te draaien, maar soms moet ik het overdag doen, dus hoe sneller hoe beter.
Hier zijn de resultaten van een snelle tijdtest van een klein 5.85 MB monster van 960 bestanden in 303 mappen. Ik heb methode 1 uitgevoerd, gevolgd door methode 2, en daarna de testmappen gereset.
Methode 1 verwijdert de bestanden en de mappenstructuur in één keer:
rmdir /s/q foldername
Methode 2 heeft een eerste pass om bestanden te verwijderen en outputs naar nul om de overhead van het schrijven naar het scherm voor elk singe bestand te vermijden. Een tweede pass schoont dan de overgebleven directory structuur op:
del /f/s/q foldername > nul
rmdir /s/q foldername
- Methode 1: 17.5s, 14.9s, 13.9s, 14.8s, 13.8s: gemiddeld 14.98 seconden
- Methode 2: 14.3s, 12.1s, 11.7s, 14.2s, 11.8s: gemiddeld 12.82 seconden
Hier zijn de resultaten van een andere test met 404 MB van 19.521 bestanden in 3.243 mappen:
- Methode 1: 2 minuten 20 seconden
- Methode 2: 2 minuten 33 seconden
Er zit dus niet veel in, waarschijnlijk te dichtbij om op een enkele test te beoordelen.
Edit: Ik heb opnieuw getest met veel meer data, dit is een typisch geval voor mij: 28,3 GB met 1.159.211 bestanden in 146.918 mappen:
- Methode 1: 2u 15m, 2u 34m: gemiddeld: 2 uur 25 minuten
- Methode 2: 49m, 57m: gemiddeld: 53 minuten
Wow, methode 2 is bijna drie keer zo snel als methode 1! Ik zal mijn deletestuff.bat updaten!