- Как автоматически удалять файлы старше X дней в Windows 10
- Как использовать ForFiles для удаления файлов старше X дней в Windows 10
- Разбивка команд ForFiles
- Как использовать Task Scheduler для автоматического удаления файлов старше X дней в Windows 10
- CMD Скрипт удаление файлов старше n дней
- Удаление файлов по времени создания windows
- Как удалить файлы в Powershell старше определенной даты
- Получение списка файлов для последующего удаления в Powershell
- Удаление через powershell файлов старше даты
- Удаление файлов старше n дней
- Содержание:
- 1. Скрипт удаления файлов старше n-дней
- 2. Создание задания в планировщике задач
- #Скрипт удаления файлов старше n-дней
- #Создание задания в планировщике задач
Как автоматически удалять файлы старше 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 чтобы выбрать файлы с датой последнего изменения.
- Разрешить выполнение задачи по требованию.
- Запустите задачу как можно скорее после того, как запланированный запуск пропущен.
- Если задача не выполняется, перезапустите каждый.
После того, как вы выполните шаги, команда будет запущена по расписанию, удалив файлы в расположении, которое старше указанного вами количества дней. Только не забудьте изменить имя или переместить папку в другое место. В противном случае задача не будет выполнена.
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:
А аргументе указываем путь до нашего скрипта, который мы создали ранее:
Нажимаем «Ок» и еще раз «Ок»
Все, на этом наше задание создано. Осталось дождаться, когда будет выполнено наше действие по расписанию и проверить, все ли правильно было настроено.