В Windows 10 была встроена функция «Контроль памяти», которая, помимо прочего, заботится об удалении самых старых файлов, содержащихся в корзине и в системной папке «Загрузка». Однако, на основании жалоб различных пользователей, контроль памяти перестал автоматически удалять старые файлы из папки «Загрузка».
Вместе стем, контроль памяти и очистка диска, также доступные в предыдущих версиях Windows, по-прежнему остаются отличными инструментами для восстановления пространства.
Независимо от используемой версии Windows вы можете использовать встроенную в операционную систему утилиту ForFiles, чтобы запросить автоматическое удаление файлов старше определенной даты.
ForFiles работает из командной строки и особенно полезен для внесения изменений в большое количество файлов, каждый из которых соответствует определенным критериям.
Ожидаемый синтаксис команды ForFiles выглядит следующим образом:
ForFiles /p путь /m критерии_поиска [/s] [/c "команда"] [/d [{+-}][{дата|день}]]
Вместо пути вы можете указать папку, в которую нужно вмешаться, а критерии_поиска можно заменить директивой, в которой указан тип файла (например, *.docx ).
Параметр /s позволяет также вмешиваться в содержимое подпапок; /c для выполнения команды, заключенной в двойные кавычки. Наконец, /d позволяет указать дату или количество дней: действие, запрошенное с помощью ForFiles, повлияет только на файлы старше указанной даты.
Чтобы удалить файлы старше 60 дней из указанной папки, просто введите следующую команду:
ForFiles /p "X:\path" /s /c "cmd /c del @file /f /q" /d -60
Команда позволит удалить все файлы старше двух месяцев, включая файлы с атрибутом «только для чтения», без запроса какого-либо подтверждения от пользователя.
Команда, подобная следующей, позволяет удалить файлы, созданные сегодня:
ForFiles /p "X:\path" /s /c "cmd /c del @file /f /q" /d 0
Чтобы избежать нанесения ущерба, вы можете просто заменить del на команду echo, так вы получите список файлов, которые будут удалены, потому что они старше указанной даты:
ForFiles /p "X:\path" /s /c "cmd /c echo @path @file" /d -60
Вместо /d -60
можно указать конкретную дату в формате дд/мм/гггг.
В завершение важно отметить, что утилита ForFiles не поддерживает сетевые пути: для вмешательства в файлы, хранящиеся в общих папках в локальной сети, необходимо сначала связать с ними идентификационную букву диска.
В командной строке Windows просто используйте net use X: \\сетевой_путь, добавив, возможно, пароль и username.
Вы также можете использовать Планировщик (в поле поиска Windows введите Планировщик заданий), чтобы создать новую задачу на периодическое удаление самых старых файлов в указанной папке.
Чтобы напрямую вызвать утилиту, просто введите ForFiles в поле «Программа или Сценарий», затем укажите все, что следует в поле «Добавить аргументы».
В качестве альтернативы, особенно если вы должны действовать по сетевому пути, просто создайте пакетный файл (.bat), указав путь в окне «Программа или Сценарий».
Используя вкладку «Триггеры», вы можете указать периодичность, с которой хотите очищать указанную папку.