- Как автоматически удалять файлы старше X дней в Windows 10
- Как использовать ForFiles для удаления файлов старше X дней в Windows 10
- Разбивка команд ForFiles
- Как использовать Task Scheduler для автоматического удаления файлов старше X дней в Windows 10
- Как удалить файлы в Powershell старше определенной даты
- Получение списка файлов для последующего удаления в Powershell
- Удаление через powershell файлов старше даты
- Как в Windows 10 удалить файлы старше N-дней
- Удаление старых файлов с помощью Проводника
- Удаление старых файлов в командной строке
- Удаление старых файлов с помощью PowerShell
- Windows удаление файлов по дате
Как автоматически удалять файлы старше X дней в Windows 10
В Windows 10 вы можете использовать командную строку и планировщик задач, чтобы автоматически удалять файлы старше определенного количества дней, чтобы освободить место и сохранить ваши файлы организованными.
Приложение «Настройки» включает в себя «Хранилище» — функцию, которая автоматически запускается при нехватке памяти для освобождения места. Помимо возможности удаления временных файлов, вы также можете включить функцию удаления файлов, которые были в корзине или в папке «Загрузки», которые не изменились за последний месяц. Однако эта функция ограничена и не позволяет отслеживать дополнительные папки, чтобы удалять их файлы, которые не изменились за последние 60 дней.
Если вы храните временные файлы из Интернета или проекты в разных папках, можно использовать команду ForFiles в командной строке и планировщике задач, чтобы удалить файлы из любой папки старше определенного количества дней.
В этом руководстве вы узнаете, как вручную удалять файлы, которые не были изменены в течение указанного количества дней, и как создать автоматизированную задачу, которая будет удалять файлы старше определенного количества дней в любой папке на Windows 10.
Важное замечание: Перед запуском команды в папке, которую вы хотите организовать, протестируйте команду с помощью тестовой папки, так как использование неправильных параметров и другие ошибки могут привести к удалению неправильных файлов.
Как использовать ForFiles для удаления файлов старше X дней в Windows 10
Если у вас есть разные папки с большим количеством файлов и вы хотите очистить их, удалив те файлы, которые старше определенного количества дней, вы можете использовать команду ForFiles.
Чтобы использовать команду ForFiles для удаления файлов старше определенного количества дней, выполните следующие действия:
- Откройте Пуск в Windows 10.
- Найдите командную строку , щелкните правой кнопкой мыши результат и выберите параметр « Запуск от имени администратора» .
- Введите следующую команду, чтобы удалить файлы, которые не были изменены за последние 30 дней, и нажмите Enter :
В приведенной выше команде не забудьте изменить «C:\path\to\folder» указав путь к папке, в которую вы хотите удалить файлы, и измените /d -30 чтобы выбрать файлы с датой последнего изменения.
Разбивка команд ForFiles
- /p — указывает путь для начала поиска.
- /s — поручает ForFiles искать внутри подкаталогов.
- /d — указывает дату последнего изменения файла.
- /c — указывает ForFiles выполнить команду, которую нужно заключить в двойные кавычки, по умолчанию это «cmd /c del @file» .
Если вы хотите узнать больше об этих ключах, используйте ForFiles /? команду.
Как использовать Task Scheduler для автоматического удаления файлов старше X дней в Windows 10
Команда в предыдущих инструкциях позволяет вам удалять файлы в папке старше 30 дней, но вам нужно открывать командную строку и выполнять команду вручную каждый раз, когда вы хотите освободить место.
Если вы хотите автоматизировать процесс, вам нужно использовать планировщик задач в Windows 10, чтобы создать задачу, которая выполняет команду с заданными интервалами.
Чтобы создать запланированное задание с помощью команд ForFiles для удаления файлов, которые не изменились за некоторое время, выполните следующие действия:
- Откройте Пуск.
- Найдите планировщик заданий и нажмите на верхний результат, чтобы открыть опыт.
- Щелкните правой кнопкой мыши папку «Библиотека планировщика заданий».
- Нажмите «Новая папка».
- Введите любое имя для папки и нажмите ОК. (Мы создаем новую папку, чтобы задачи были организованы и отделены от системных задач.)
- Щелкните правой кнопкой мыши недавно созданную папку и выберите параметр «Создать задачу».
- В поле «Имя» введите имя для задачи.
- На вкладке «Общие» в разделе «Параметры безопасности» выберите параметр «Выполнить» независимо от того, вошел пользователь в систему или нет . (Это опция, которая заставляет командное окно не появляться, когда задача запускается автоматически.)
- Снимите флажок Не хранить пароль .
- Перейдите на вкладку «Триггеры» и нажмите кнопку «Новый».
- Используя раскрывающееся меню «Начать задачу», выберите параметр «По расписанию».
- В разделе «Настройки» укажите, когда вы хотите, чтобы задача выполнялась (например, «Вовремя», «Ежедневно», «Еженедельно», «Ежемесячно»). Какой бы вариант вы ни выбрали, обязательно укажите параметры запуска справа.
- Нажмите кнопку ОК.
- Перейдите на вкладку «Действия» и нажмите кнопку «Создать».
- В раскрывающемся меню «Действия» выберите пункт «Запустить программу».
- В поле «Программа / скрипт» введите следующую команду:
- В поле «Добавить аргументы» введите следующую команду и нажмите кнопку ОК .
В приведенной выше команде не забудьте изменить «C:\path\to\folder» указав путь к папке, в которую вы хотите удалить файлы, и измените /d -30 чтобы выбрать файлы с датой последнего изменения.
- Разрешить выполнение задачи по требованию.
- Запустите задачу как можно скорее после того, как запланированный запуск пропущен.
- Если задача не выполняется, перезапустите каждый.
После того, как вы выполните шаги, команда будет запущена по расписанию, удалив файлы в расположении, которое старше указанного вами количества дней. Только не забудьте изменить имя или переместить папку в другое место. В противном случае задача не будет выполнена.
Как удалить файлы в Powershell старше определенной даты
Для того, что бы через powershell удалить файлы старше даты сначала нужно установить дату, которая нам нужна:
Можно дату задать несколькими днями назад. Это удобно для скриптов, которые будут все время висеть в планировщике:
Навигация по посту
На моем примере дата получится в таком формате:
Т.к. я не установил минуты и секунды — они взялись по умолчанию из текущего дня. Если мы не установим год, например, то он будет текущим 2019.
Получение списка файлов для последующего удаления в Powershell
Далее нам нужно использовать Get-Childitem для того что бы получить все файлы:
- Path — путь до директории
- Include — включает, в моем случае, все файлы которые кончаются на txt
- Recurse — поиск файлов не только в текущей папке, но и в подпапках.
У файла есть несколько свойств c датами (datetime). Все их увидеть можно так:
- CreationTime
- CreationTimeUtc
- LastAccessTime
- LastAccessTimeUtc
- LastWriteTime
- LastWriteTimeUtc
UTC значит, что дата будет в формате всемирного времени.
Удаление через powershell файлов старше даты
Меня интересует удаление файлов по дате создания. Для этого сделаем так:
Т.е. для каждого файла где свойство CreationDate (дата создания файла) LessThen (больше чем) дата в переменной произвести удаление. Таким образом мы удалили в powershell файлы старше определенной даты. Мы можем использовать и другие операторы сравнения:
- lt — меньше
- le — меньше или равно
- gt — больше
- ge — больше или равно
- ne — не равно
Как в Windows 10 удалить файлы старше N-дней
Одной из особенностей последних версий Windows 10 является способность поддерживать себя в чистоте, автоматически удаляя ставшие ненужными по истечении определённого срока файлы. В более ранних версиях системы, в которых эта функция ещё не реализована, для удаления старых файлов можно использовать командную строку, консоль PowerShell и даже Проводник, хотя процедура очистки с помощью последнего не так удобна.
Рассмотрим все три варианта.
Удаление старых файлов с помощью Проводника
Лента Проводника Windows 10 и 8.1 содержит инструмент, который позволяет отсортировать все файлы в каталоге по дате изменения, типу, размеру и некоторым другим свойствам. Допустим, вы хотите удалить файлы старше одного месяца. Зайдите в папку с залежавшимися в ней файлам и нажмите на клавиатуре F3 . При этом вы будете переключены в ленте Проводника в раздел поиска.
Кликните по иконке «Дата изменения» и выберите в выпадающем списке нужный период времени, в данном случае месяц.
Проводник тут же отсортирует все файлы по заданному параметру, так что вам останется только выделить их мышкой и отправить в Корзину. Способ простой, но не особо удобный, поскольку всё приходится делать руками. Есть куда более эффективный метод удаления старых файлов и сейчас как раз мы его рассмотрим.
Удаление старых файлов в командной строке
Для удаления файлов с «истёкшим сроком годности» мы будем использовать консольную утилиту ForFiles.exe , отвечающую за выбор объекта и выполнение с ним указанного действия. Утилита поддерживает несколько параметров, а именно:
• /S — позволяет выполнять рекурсивный поиск.
• /P — указывает путь к разделу или каталогу.
• /D — указывает количество дней с момента последней модификации.
• /C — задаёт команду действия над файлом.
В команде ForFiles также можно указывать возвращающие различные значения переменные, например, @file , которая возвращает имя файла и которую мы будем использовать. Удалим для примера все файлы старше 10 дней в папке «Картинки», лежащей в корне системного диска.
Открываем командную строку и выполняем такую команду:
В примере используются три ключа /p (путь) , /s (рекурсия) и /d (количество дней) , а также команда удаления del и переменная имени файла @file . Как только мы нажмём ввод , ForFiles пробежится по всему содержимому папки «Картинки», включая вложенные каталоги и удалит все файлы старше 10 дней .
Как видите, этот способ более эффективный и быстрый, кроме того, вы можете его автоматизировать, создав для него задания в Планировщике.
Удаление старых файлов с помощью PowerShell
Здесь практически всё то же самое, что и в примере с командной строкой, разве что синтаксис иной. Предположим, что ни путь к папке с файлами, ни цели у нас не изменились. Запускаем консоль PowerShell и выполняем команду такого вида:
Результат будет аналогичным предыдущему.
Обратите внимание, что в команде также используется рекурсия (-Recurse) и указание даты в днях AddDays(-10).
Windows удаление файлов по дате
Профиль | Отправить PM | Цитировать
Всем приветы, помогите пожалуйста с вопросом.
В папке есть масса файлов разной даты, как сделать батник чтобы 10 файлов с последней датой оставлял — самые свежие,
остальные удалял? Причем если в папке меньше 10 файлов, чтобы оставлял все.
Т.е. по другому опишу задачу: в папке есть пачка файлов, нужно оставить последние 10 по самой свежей дате, включая текущий день,
старшие фалы удалить, но если в папке менее 10 файлов, то оставлять их все.
Помогите плз? Заранее буду ОЧЕНЬ благодарен, с меня +
Мне нужно чтобы из батника работал » |
Папку указываете параметром пакетного файла. Для реального удаления уберите «echo» перед «del …».
и возможно ли прикрутить рекурсию на вложенные папки? » |
Последний раз редактировалось Iska, 25-07-2013 в 16:33 . Причина: Учтено замечание коллеги MMX-Dimitrov
Это сообщение посчитали полезным следующие участники:
Т.е. в командной строке указать исполняемый файл bat, пусть скрипт будет del.bat и саму папку? » |
Да. Но старайтесь избавляться от привычки именовать пакетные файлы именами внутренних команд или внешних исполняемых файлов. Назовите пакетный файл как-то иначе. Да и расширение для ясности лучше давать «.cmd». То же относится и к именованию каталогов.
в папке дир лежат файлы для удаления, » |
Это сообщение посчитали полезным следующие участники:
Да. Но старайтесь избавляться от привычки именовать пакетные файлы именами внутренних команд или внешних исполняемых файлов. Назовите пакетный файл как-то иначе. Да и расширение для ясности лучше давать «.cmd». То же относится и к именованию каталогов. » |
Запускаю del_bat.cmd «dir» рядом с файлом скрипта лежит папка dir с файлами, удалил echo в скрипте, ничего не происходит с файлами просто cmd окно промелькнет и все.
Запускаю вот так прямо из командной строки cmd: for /f «skip=10 delims==» %%i in (‘dir /b /a:-d /o:-d’) do del /f /q «%%i» удаляет 10 файлов, а пакетником не работает.
Подскажите что может быть?
Все, доделал сам! Спасибо большое.
Для некой рекурсии применил вот это:
Последний раз редактировалось AlexPebody, 10-05-2012 в 14:06 .