Предупреждение: если у вас есть сим-ссылки на каталоги, то del
удалит действительные каталоги, а не сим-ссылки. Будьте очень осторожны с этим и не запускайте эти команды, если вы не знаете, что внутри целевой директории нет никаких симлинков.
Мне регулярно нужно удалять много файлов и каталогов с диска, зашифрованного в WinXP, обычно около 22 ГБ из 500,000 файлов в 45,000 папок.
Удаление с помощью проводника Windows Explorer - мусор, потому что он тратит много времени на перечисление файлов. Обычно я перемещаю то, что мне нужно удалить, на C:\stufftodelete, и у меня есть пакетный файл deletestuff.bat в rmdir /s/q C:\stufftodelete
. По расписанию он должен запускаться ночью, но иногда мне нужно запускать его днем, так что чем быстрее, тем лучше.
Вот результаты быстрого теста времени маленького 5.85 MB образца из 960 файлов в 303 папках. Я запустил метод 1, затем метод 2, а затем сбросил тестовые каталоги.
Метод 1 удаляет файлы и структуру каталогов за один проход:
rmdir /s/q foldername
Метод 2 имеет первый проход для удаления файлов и выводит на нуль, чтобы избежать накладных расходов при записи на экран для каждого одиночного файла. Второй проход затем очищает оставшуюся структуру каталога:
del /f/s/q foldername > nul
rmdir /s/q foldername
- Метод 1: 17,5 с, 14,9 с, 13,9 с, 14,8 с, 13,8 с: в среднем 14,98 с
- Метод 2: 14,3 с, 12,1 с, 11,7 с, 14,2 с, 11,8 с: в среднем 12,82 с
Вот результаты другого теста с использованием 404 Мб из 19 521 файла в 3 243 папках:
- Метод 1: 2 минуты 20 секунд
Метод 2: 2 минуты 33 секунды
Таким образом, в нем не так много, вероятно, слишком близко, чтобы судить по одному тесту.
Правка: Я перепроверил с гораздо большим количеством данных, это типичный случай для меня: 28,3 Гб из 1 159 211 файлов в 146 918 папках:
- Метод 1: 2h 15m, 2h 34m: средний: 2 часа 25 минут
- Метод 2: 49м, 57м: в среднем: 53 минуты 0x2 и 0x2 и - Ух ты, метод 2 почти в три раза быстрее, чем метод 1! Я буду обновлять свои deletestuffff.bat!