Иногда я удаляю массу файлов на нескольких компьютерах с помощью командной строки Windows, с помощью команды DEL , а на некоторых эта функция многословна (т.е. выводит файлы, которые она удаляет по ходу), тогда как на других это не так. Есть ли способ заставить утилиту командной строки всегда отображать свой прогресс?

2 ответа2

4

Обе команды 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
1

Если вы удаляете весь каталог, используйте вместо него rd/s/q (rmdir /s /q).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .