ВНИМАНИЕ: если у вас есть символические ссылки на каталоги, то del
будут удалены реальные каталоги, а не символические ссылки. Будьте очень осторожны с этим и не запускайте эти команды, если вы не знаете, что в целевом каталоге нет символических ссылок.
Мне регулярно нужно удалять множество файлов и каталогов с зашифрованного диска WinXP, обычно около 22 ГБ из 500 000 файлов в 45 000 папок.
Удаление с помощью проводника Windows - это чушь, потому что перечисление файлов тратит много времени. Я обычно перемещаю материал, который мне нужно удалить, в C: \ stufftodelete и имею пакетный файл deletestuff.bat в rmdir /s/q C:\stufftodelete
. Запуск запланирован на ночь, но иногда мне нужно запускать его днем, поэтому чем быстрее, тем лучше.
Вот результаты быстрого тестирования небольшого 5,85 МБ образца из 960 файлов в 303 папках. Я запустил метод 1, затем метод 2, а затем сбросил тестовые каталоги.
Метод 1 удаляет файлы и структуру каталогов за один проход:
rmdir /s/q foldername
Метод 2 имеет первый проход для удаления файлов и выводит значение nul, чтобы избежать накладных расходов при записи на экран для каждого отдельного файла. Второй проход очищает оставшуюся структуру каталогов:
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 файла в 3243 папках:
- Способ 1: 2 минуты 20 секунд
- Способ 2: 2 минуты 33 секунды
Так что в этом не так много, вероятно, слишком близко, чтобы судить об одном тесте.
Изменить: я еще раз проверил с гораздо большим количеством данных, это типичный случай для меня: 28,3 ГБ из 1159 211 файлов в 146 918 папках:
- Метод 1: 2 ч 15 м, 2 ч 34 м: в среднем 2 часа 25 минут
- Метод 2: 49 м, 57 м: в среднем 53 минуты
Вау, метод 2 почти в три раза быстрее, чем метод 1! Я буду обновлять мой deletestuff.bat!