Удаление файлов по времени создания windows

Как автоматически удалять файлы старше X дней в Windows 10

В Windows 10 вы можете использовать командную строку и планировщик задач, чтобы автоматически удалять файлы старше определенного количества дней, чтобы освободить место и сохранить ваши файлы организованными.

Приложение «Настройки» включает в себя «Хранилище» — функцию, которая автоматически запускается при нехватке памяти для освобождения места. Помимо возможности удаления временных файлов, вы также можете включить функцию удаления файлов, которые были в корзине или в папке «Загрузки», которые не изменились за последний месяц. Однако эта функция ограничена и не позволяет отслеживать дополнительные папки, чтобы удалять их файлы, которые не изменились за последние 60 дней.

Если вы храните временные файлы из Интернета или проекты в разных папках, можно использовать команду ForFiles в командной строке и планировщике задач, чтобы удалить файлы из любой папки старше определенного количества дней.

В этом руководстве вы узнаете, как вручную удалять файлы, которые не были изменены в течение указанного количества дней, и как создать автоматизированную задачу, которая будет удалять файлы старше определенного количества дней в любой папке на Windows 10.

Важное замечание: Перед запуском команды в папке, которую вы хотите организовать, протестируйте команду с помощью тестовой папки, так как использование неправильных параметров и другие ошибки могут привести к удалению неправильных файлов.

Как использовать ForFiles для удаления файлов старше X дней в Windows 10

Если у вас есть разные папки с большим количеством файлов и вы хотите очистить их, удалив те файлы, которые старше определенного количества дней, вы можете использовать команду ForFiles.

Чтобы использовать команду ForFiles для удаления файлов старше определенного количества дней, выполните следующие действия:

  1. Откройте Пуск в Windows 10.
  2. Найдите командную строку , щелкните правой кнопкой мыши результат и выберите параметр « Запуск от имени администратора» .
  3. Введите следующую команду, чтобы удалить файлы, которые не были изменены за последние 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 для удаления файлов, которые не изменились за некоторое время, выполните следующие действия:

  1. Откройте Пуск.
  2. Найдите планировщик заданий и нажмите на верхний результат, чтобы открыть опыт.
  3. Щелкните правой кнопкой мыши папку «Библиотека планировщика заданий».
  4. Нажмите «Новая папка».
  5. Введите любое имя для папки и нажмите ОК. (Мы создаем новую папку, чтобы задачи были организованы и отделены от системных задач.)
  6. Щелкните правой кнопкой мыши недавно созданную папку и выберите параметр «Создать задачу».
  7. В поле «Имя» введите имя для задачи.
  8. На вкладке «Общие» в разделе «Параметры безопасности» выберите параметр «Выполнить» независимо от того, вошел пользователь в систему или нет . (Это опция, которая заставляет командное окно не появляться, когда задача запускается автоматически.)
  9. Снимите флажок Не хранить пароль .
  10. Перейдите на вкладку «Триггеры» и нажмите кнопку «Новый».
  11. Используя раскрывающееся меню «Начать задачу», выберите параметр «По расписанию».
  12. В разделе «Настройки» укажите, когда вы хотите, чтобы задача выполнялась (например, «Вовремя», «Ежедневно», «Еженедельно», «Ежемесячно»). Какой бы вариант вы ни выбрали, обязательно укажите параметры запуска справа.
  13. Нажмите кнопку ОК.
  14. Перейдите на вкладку «Действия» и нажмите кнопку «Создать».
  15. В раскрывающемся меню «Действия» выберите пункт «Запустить программу».
  16. В поле «Программа / скрипт» введите следующую команду:
  17. В поле «Добавить аргументы» введите следующую команду и нажмите кнопку ОК .

В приведенной выше команде не забудьте изменить «C:\path\to\folder» указав путь к папке, в которую вы хотите удалить файлы, и измените /d -30 чтобы выбрать файлы с датой последнего изменения.

  • Нажмите кнопку ОК .
  • Перейдите на вкладку «Настройки» и обязательно проверьте следующие параметры:
    • Разрешить выполнение задачи по требованию.
    • Запустите задачу как можно скорее после того, как запланированный запуск пропущен.
    • Если задача не выполняется, перезапустите каждый.
  • Нажмите кнопку ОК .
  • При появлении запроса введите имя пользователя и пароль администратора.
  • Нажмите кнопку ОК.
  • После того, как вы выполните шаги, команда будет запущена по расписанию, удалив файлы в расположении, которое старше указанного вами количества дней. Только не забудьте изменить имя или переместить папку в другое место. В противном случае задача не будет выполнена.

    CMD Скрипт удаление файлов старше n дней

    Удаление файлов через cmd утилитой forfiles.exe

    Пример как с ее помощью можно удалять бекапы старше 20 дней:

    forfiles.exe /p С:\Backup\ /s /m *.* /d -20 /c «cmd /c del /q /f @file»

    обычный батник — и вуаля само делает неинтересную работу..

    справка по FORFILES

    FORFILES [/P ] [/M ] [/S]

    Выбор файла (или набора файлов) и выполнение команды

    с этим файлом. Программа полезна для пакетных заданий.

    /P Путь, с которого начинается поиск.

    По умолчанию используется текущая

    /M Поиск файлов с помощью маски.

    Маска поиска по умолчанию «*» .

    /S Рекурсивное выполнение программы forfiles

    во всех подпапках, аналогично «DIR /S».

    /C Команда, которая выполняется для каждого файла.

    Строки команд необходимо заключать в прямые

    Команда по умолчанию «cmd /c echo @file».

    Следующие переменные могут использоваться

    в строке команды:

    @file — возвращает имя файла.

    @fname — возвращает имя файла без

    @ext — возвращает только расширение имени

    @path — возвращает полный путь к файлу.

    @relpath — возвращает относительный путь к

    @isdir — возвращает значение «TRUE», если типом

    файла является папка, и «FALSE» для файлов.

    @fsize — возвращает размер файла

    @fdate — возвращает дату последнего изменения

    @ftime — возвращает время последнего изменения

    Для включения специальных символов в строку команды

    следует использовать шестнадцатеричный код символа

    в формате 0xHH (например, 0x09 для табуляции).

    Перед внутренними командами CMD.exe необходимо ставить

    /D Выбор файлов, у которых дата последнего изменения

    больше или равна (+) либо меньше или равна

    (-) указанной дате при использовании формата

    «dd.MM.yyyy»; либо файлов, у которых дата последнего

    изменения больше или равна (+)

    текущей дате плюс «dd» дней либо меньше или

    равна (-) текущей дате минус «dd» дней.

    Допустимым числом дней «dd» является любое

    число в диапазоне 0 — 32768.

    «+» используется по умолчанию, если знак не указан.

    /? Вывод справки по использованию.

    FORFILES /P C:\WINDOWS /S /M DNS*.*

    FORFILES /S /M *.txt /C «cmd /c type @file | more»

    FORFILES /P C:\ /S /M *.bat

    FORFILES /D -30 /M *.exe

    /C «cmd /c echo @path 0x09 был изменен 30 дней назад»

    FORFILES /D 01.01.2001

    /C «cmd /c echo @fname является новым с 1-янв-2001»

    FORFILES /D +25.1.2011 /C «cmd /c echo @fname является новым сегодня»

    FORFILES /M *.exe /D +1

    FORFILES /S /M *.doc /C «cmd /c echo @fsize»

    Удаление файлов по времени создания windows

    Сообщения: 2205
    Благодарности: 1363

    Вот скрипт, который решает Вашу задачу для любого количества дней.

    Текст скрипта перенесите в блокнот, сохраните в файл с расширением .vbs, например ArcNDays.vbs
    Запускайте как обычный исполнимый файл (как bat, например)

    Скрипт использует ключи архиватора WinRar

    -r -архивируем с поддиректориями
    -df -удаляем файлы после архивации
    -tb -архивируем файлы старше указанного времени

    Скрипт вычисляет дату, отстоящую от текущей на указанное число дней и формирует командную строку с архиватором.
    Архиватор архивирует старые файлы в указанную директорию и удаляет исходные файлы.

    ‘ Исходные данные
    ‘ ————————————————————————
    DirRab = «D:\Проба пера\» ‘ Директория, откуда забираем файлы (c \ на конце)
    DirArc = «D:\Проба пера.ARC\» ‘ Директория, куда архивируем файлы (c \ на конце)

    NDaysDele = 31 ‘ Файлы старше NDaysDele будут заархивированы и удалены

    MDate = CStr(DateAdd(«d»,-NDaysDele,Date)) ‘ Дата отстоящая от текущей на NDaysDele дней

    Set WS = CreateObject(«WScript.Shell»)
    DateArc=Mid(MDate,7,4)+Mid(MDate,4,2)+Mid(MDate,1,2)

    R = WS.Run(Arc+» a -r -df -tb»+DateArc+»0001 «»»+DirArc+DateArc+»»» «»»+DirRab+»*.*»»», 1, True)

    ——-
    Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.

    Как удалить файлы в 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 — не равно

    Удаление файлов старше n дней

    Иногда надо сделать удаление файлов старше n дней. Например Backup’ы. Можно делать это вручную, отсортировать их по дате и удалить, а можно воспользоваться скриптом. В данном примере мы рассмотрим скрипт для удаления файлов старше n дней и добавим задание в планировщик Windows Server 2012R2.

    Содержание:

    1. Скрипт удаления файлов старше n-дней

    2. Создание задания в планировщике задач

    #Скрипт удаления файлов старше n-дней

    Скрипт на самом деле очень простой, создается в PowerShell и выглядит он следующим образом:

    Где:
    F:\backup\ — путь, в какой папке мы будем с вами искать файлы для удаления
    *.* — имя (маска) файлов
    /d -30 — старше скольки дней нам необходимо удалить файлы.

    Вот так это выглядит в PowerShell:

    Осталось только его выполнить и все.

    #Создание задания в планировщике задач

    Все хорошо, у нас есть скрипт. Мы можем выполнять его вручную, когда необходимо очистить наши бекапы. Но зачем выполнять это вручную? Мы поручим планировщику запускать наш скрипт и избавимся сами от рутинной работы.

    Итак, что нам для этого надо?

    Для начала идем в «Пуск -> панель управления -> Администрирование» и запускаем там «Планировщик заданий«.

    Выбираем пункт «Создать задачу«:

    На вкладке «Общие» задаем имя задания, его описание и пользователя, от которого оно будет выполняться. По умолчанию там будет пользователь, под которым вы вошли в данный момент в систему.

    Далее переходим на вкладку «Триггеры» и создаем расписание, когда мы будем запускать наше задания. У меня настроено в 10:00 каждые 2 дня.

    Далее идем на вкладку «Действия» и задаем действие, которое будет выполняться. Выбираем «Запуск программы»

    программу или сценарий

    и указываем путь до PowerShell:

    А аргументе указываем путь до нашего скрипта, который мы создали ранее:

    Нажимаем «Ок» и еще раз «Ок»

    Все, на этом наше задание создано. Осталось дождаться, когда будет выполнено наше действие по расписанию и проверить, все ли правильно было настроено.

    Читайте также:  Разные раскладки клавиатуры windows 10
    Оцените статью