Иногда я удаляю массу файлов на нескольких компьютерах с помощью командной строки Windows, с помощью команды DEL
, а на некоторых эта функция многословна (т.е. выводит файлы, которые она удаляет по ходу), тогда как на других это не так. Есть ли способ заставить утилиту командной строки всегда отображать свой прогресс?
2 ответа
Обе команды del и erase будут молчать, если вы не включите аргумент /s для удаления всех файлов во всех подкаталогах.
Один из вариантов - просто удалить файлы один за другим. Допустим, вы хотите удалить все в папке temp:
for /f "tokens=*" %A in ('dir /s /b "%TEMP%"') do del /Q "%A"
Это займет некоторое время для запуска с 2 миллионами файлов, так как сначала нужно будет перечислить их, а затем удалить их один за другим.
Другой вариант - использовать Robocopy и сделать так, чтобы он отражал пустой каталог, чтобы удалить нужные файлы. Вы получите подробный вывод при удалении каждого файла. Начните с пустой директории (c:\empty) и запустите что-то похожее на следующее:
robocopy c:\empty c:\dir_with_files_to_be_deleted *files_you_want_to_delete.* /mir /v
Или, если вы просто хотите удалить все файлы в одном каталоге:
robocopy c:\empty c:\dir_to_empty /mir /v
Если вы удаляете весь каталог, используйте вместо него rd/s/q
(rmdir /s /q
).