Каталог расширений

Популярные теги

3gp       avi       fb2       jpg       mp3       pdf      

Cmd как удалить файл старше дней


Как удалять файлы старше 10 дней на windows

Делаю бекапы каждый день, накапливается не один десяток гигабайт информации. Чистить нужно, тем более старые бекапчики особой важности не несут. Раньше удалял вручную, но потом задумался… Вручную делать это лень, тем более можешь завтыкать, протупить и удалить не то. Короче, ленивый сделает лучше всех — нужно автоматизировать.

Воспользовался встроенной утилитой forfiles. Теперь все делает планировщик задач и несложный bat-ник в две строки. Пример дальше.

Команды forfiles. Примеры

Вот так примерно выглядит команда для отображения всех файлов с расширением .rar на диске С старше 10-ти дней:
forfiles /p C:\ /m *.rar /s /d -10 /c «cmd /c echo @path»

Разберем ключи по порядку:

/p — пусть для проверки. В примере диск C:\
/m — маска для поиска. Можно не задавать, если хотим убрать все файлы в папке. В примере все архивы с расширением .rar
/s — сканируем вложенные папки в том числе.
/d — дата. Можно задать в формате dd.mm.yyyy или dd. У нас -10 дней, можно указать +N дней. Про +N дней читайте далее.
/c — команда. Ключевое что нам нужно — собственно что мы будем делать с файлами. В командах также можно использовать переменные:
@path — показывает полный путь к файлу и его имя.
@relpath — показывает путь к файлу только в сканируемой папке.
@file — имя файла полностью с расширением.
@fname — только имя файла, без расширения.
@ext — только расширение имени файла.
@isdir — проверка типа файла — папка или файл. Возвращает true, если папка, и false для файлов.
@fsize — возвращает размер файла в байтах.
@fdate — возвращает дату последнего изменения файла.
@ftime — возвращает время последнего изменения файла.

Также результаты исполнения скрипта можно записать в файл.

Пример использования forfiles — отобразить все файлы .zip на диске и записать их в файл

Следующий код отобразит все Ваши исполняемые файлы .exe:
forfiles /p C:\ /m *.exe /s /c «cmd /c echo @path»

Если нужно их записать в файл, то добавьте в конце знак БОЛЬШЕ и адрес куда сохранить файл (лучше всего прописать полный путь).
forfiles /p C:\ /m *.exe /s /c «cmd /c echo @path» > D:\all_exefiles.txt

Вставляем код в cmd:

Forfiles. Запись в файл выполненного скрипта

Результат — созданный файл на диске D:\ и его содержимое (можно много интересного найти):

Forfiles. Запись в файл выполненного скрипта. Результат

Пример forfiles с переменными путь, дата, размер

Давайте вызовем все наши файлы с диска D:\ с расширением .zip, а выведем их на экран с адресом, датой и размером файла. Используем скрипт:

forfiles /p D:\ /m *.zip /s /c «cmd /c echo @path изменен @fdate и размером @fsize байт »

Вот результат выполнения скрипта:

Команды forfiles. Используем переменные со своим текстом

Как удалить файлы старше 10 дней

Чаще всего forfiles используют как раз для задачи удаления устаревших файлов. Вот Вам cmd скрипт для удаления старых файлов (в примере старше 10 дней):
forfiles /p C:\ /m *.rar /s /d -10 /c «cmd /c del @path /q»

Как удалить папки старше 7 дней с помощью forfiles

Кроме самих файлов не лишним будет удалять и папки, тем более если они будут пустые (без файлов). Код:
forfiles /p C:\downloads /s /d -7 /c «cmd /c rmdir /s del @path /q»
В этом примере я написал уже 7 дней. Для удаления папок мы используем rmdir, ключ /s — для сканирования вложенных папок, del — команда удаления, /q — удаление без подтверждения.

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]

[/C <команда>] [/D [+ | -] {dd.MM.yyyy | dd}]

Описание.

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

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

Параметры:

/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 необходимо ставить

«cmd /c».

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

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

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

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

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

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

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

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

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

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

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

Примеры:

FORFILES /?

FORFILES

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»

FORFILES /M *.txt /C «cmd /c if @isdir==FALSE notepad.exe @file»

Удалить файлы старше N дней в Windows

Создаем обычный .bat файл, сделать это можно с помощью блокнота.

Вписываем туда команду

Forfiles -p "C:\папка с файлами" -s -m *.* -d -60 -c "cmd /c del /q @path"

Параметры

-p папка в которой мы будем удалять файлы

-s рекурсивное удаление (удаление во всех папках и под папках)

-m маска поиска файлов

-d (количество дней) выбор файлов, у которых дата изменения меньше или равна (-) текущей даты.

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

del - команда удаления

/q - отключения запросов на подтверждение при удалении

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

Сохраняем файл с расширением .bat

Удаление файлов по сети с помощью forfiles

Удаление файлов старше чем N дней через командную строку — www.61bit.ru

Часто молодые, опытные и не очень администраторы пытаются автоматизировать удаление старых файлов через разные программы автоматизации. Такие как xstarter и т.п. решения. С одной стороны это правильное подход т.к. нет ничего роднее чем «свой велосипед».
Сегодня я предлагаю познакомиться с стандартным решением для этой задачи, командной строкой Windows.
Реализуется удаление очень просто

FORFILES /p C:\temp\ /s /m *.* /d -10 /c «CMD /c del /Q @FILE»
FORFILES /S /P «C:\temp\» /d -2 /m *.* /c «cmd /c del /q @file »

Ключи:
S — Рекурсивное выполнение
P — Путь к папке
D — Дата
M — Маска файлов
С — Команда которая будет применяться к файлам

Более подробно про ключи можно почитать в help , вот простой пример двух команд которые чистят файлы старше 10 дней в директории по маске *.*

Для полной автоматизации данную команду, можно сохранить в bat файл, и выполнять в ручном режиме или через планировщик задач по расписанию.

cmd удалить файлы старше дней

На чтение 3 мин. Просмотров 4 Опубликовано

Простые действия в Windows не всегда простые:)
Для удаления файлов старше какого-либо периода в Unix отлично справляется нативная команда find.
Для Windows времен 2000 и XP приходилось использовать либо сторонние программы, либо писать на VBS.
Но начиная с Windows7 в поставке появилась утилита forfiles, которая легко решает данную задачу.

Напишем bat-файл для удаления файлов старше 30 дней из директории C: emplogs:

  • -p – Путь
  • -s – Разрешаем ходить рекурсивно
  • -d – Дата (Можно указать точную дату формата ‘dd.MM.yyyy’)
  • -30 – относится к ключу ‘-d’ и указывает, что ищем файлы старше 30 дней
  • -с – Команда, которая выполняется для каждого файла

В двух словах:
Рекурсивно ищем все (можно искать по маске файла, добавив ключ ‘-m *.log’) файлы в директории ‘C: emplogs’, которые старше 30 дней, далее каждое вхождение передаем команде ‘cmd /c del @path /q‘ , где:

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

Рассмотрим все три варианта.

Удаление старых файлов с помощью Проводника

Лента Проводника Windows 10 и 8.1 содержит инструмент, который позволяет отсортировать все файлы в каталоге по дате изменения, типу, размеру и некоторым другим свойствам. Допустим, вы хотите удалить файлы старше одного месяца. Зайдите в папку с залежавшимися в ней файлам и нажмите на клавиатуре F3 . При этом вы будете переключены в ленте Проводника в раздел поиска.

Кликните по иконке «Дата изменения» и выберите в выпадающем списке нужный период времени, в данном случае месяц.

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

Удаление старых файлов в командной строке

Для удаления файлов с «истёкшим сроком годности» мы будем использовать консольную утилиту ForFiles.exe , отвечающую за выбор объекта и выполнение с ним указанного действия. Утилита поддерживает несколько параметров, а именно:

/S — позволяет выполнять рекурсивный поиск.
/P — указывает путь к разделу или каталогу.
/D — указывает количество дней с момента последней модификации.
/C — задаёт команду действия над файлом.

В команде ForFiles также можно указывать возвращающие различные значения переменные, например, @file , которая возвращает имя файла и которую мы будем использовать. Удалим для примера все файлы старше 10 дней в папке «Картинки», лежащей в корне системного диска.

Открываем командную строку и выполняем такую команду:

Создаем обычный .bat файл, сделать это можно с помощью блокнота.

Вписываем туда команду

Forfiles -p “C:папка с файлами” -s -m *.* -d -60 -c “cmd /c del /q @path”

-p папка в которой мы будем удалять файлы

-s рекурсивное удаление (удаление во всех папках и под папках)

-m маска поиска файлов

-d (количество дней) выбор файлов, у которых дата изменения меньше или равна (-) текущей даты.

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

del – команда удаления

/q – отключения запросов на подтверждение при удалении

Как в Windows 10 удалить файлы старше N-дней

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

Рассмотрим все три варианта.

Удаление старых файлов с помощью Проводника

Лента Проводника Windows 10 и 8.1 содержит инструмент, который позволяет отсортировать все файлы в каталоге по дате изменения, типу, размеру и некоторым другим свойствам. Допустим, вы хотите удалить файлы старше одного месяца. Зайдите в папку с залежавшимися в ней файлам и нажмите на клавиатуре F3. При этом вы будете переключены в ленте Проводника в раздел поиска.

Кликните по иконке "Дата изменения" и выберите в выпадающем списке нужный период времени, в данном случае месяц.

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

Удаление старых файлов в командной строке

Для удаления файлов с "истёкшим сроком годности" мы будем использовать консольную утилиту ForFiles.exe, отвечающую за выбор объекта и выполнение с ним указанного действия. Утилита поддерживает несколько параметров, а именно:

/S — позволяет выполнять рекурсивный поиск.
/P — указывает путь к разделу или каталогу.
/D — указывает количество дней с момента последней модификации.
/C — задаёт команду действия над файлом.

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

Открываем командную строку и выполняем такую команду:

ForFiles /p "C:\Картинки" /s /d -10 /c "cmd /c del @file"

В примере используются три ключа /p (путь), /s (рекурсия) и /d (количество дней), а также команда удаления del и переменная имени файла @file. Как только мы нажмём ввод, ForFiles пробежится по всему содержимому папки "Картинки", включая вложенные каталоги и удалит все файлы старше 10 дней.

Как видите, этот способ более эффективный и быстрый, кроме того, вы можете его автоматизировать, создав для него задания в Планировщике.

Примечание: после выполнения команды в консоли может вывестись сообщение, что не удается найти некий файл. Не обращайте внимание, обычно это скрытый файл базы данных, отвечающий за настройки каталога. Если в папке его нет (а быть, по идее, должен), ForFiles уведомляет об этом пользователя.

Удаление старых файлов с помощью PowerShell

Здесь практически всё то же самое, что и в примере с командной строкой, разве что синтаксис иной. Предположим, что ни путь к папке с файлами, ни цели у нас не изменились. Запускаем консоль PowerShell и выполняем команду такого вида:

Get-ChildItem "C:\Картинки" -Recurse | Where-Object {($_.LastWriteTime -lt (Get-Date).AddDays(-10))}| Remove-Item

Результат будет аналогичным предыдущему.

Обратите внимание, что в команде также используется рекурсия (-Recurse) и указание даты в днях AddDays(-10).

windows - Пакетный файл для удаления файлов старше N дней

Переполнение стека
  1. Около
  2. Продукты
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
  3. Вакансии Программирование и связанные с ним технические возможности карьерного роста
  4. Талант
.

c ++ - Удалить файл старше 30 дней

Переполнение стека
  1. Около
  2. Продукты
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
.

hadoop - Удаляет файлы старше 10 дней на HDFS

Переполнение стека
  1. Около
  2. Продукты
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
  3. Вакансии Программирование и связанные с ним технические возможности карьерного роста
  4. Талант
.Пакетный файл

- как удаленно удалить подпапки старше x дней с помощью командной строки Windows?

Переполнение стека
  1. Около
  2. Продукты
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
  3. Вакансии Программирование и связанные с ним технические возможности карьерного роста
.

Пакетное задание на удаление файлов старше 2 дней

@ nashRed-8513 Спасибо за запрос !!!

Я провел небольшое исследование и нашел ниже сценарий. Можете ли вы проверить приведенный ниже сценарий и сообщить мне, сработал он для вас или нет:

  ## Итерировать по каждому блобу foreach ($ blob_iterator в $ blob_list) { $ blob_date = [datetime] $ blob_iterator.LastModified.UtcDateTime # Проверяем, не меньше ли дата последнего изменения большого двоичного объекта пороговой даты удаления if ($ blob_date -le $ date_before_blobs_to_be_deleted) { Запись-вывод "-----------------------------------" | Исходящий файл $ local_log_file_path -Append write-output «Удаление большого двоичного объекта из хранилища:» $ blob_iterator.имя | Исходящий файл $ local_log_file_path -Append запись-вывод "" | Исходящий файл $ local_log_file_path -Append write-output «Дата последнего изменения большого двоичного объекта:» $ blob_date | Исходящий файл $ local_log_file_path -Append Запись-вывод "-----------------------------------" | Исходящий файл $ local_log_file_path -Append # Cmdle для удаления большого двоичного объекта # Remove-AzureStorageBlob -Container $ container -Blob $ blob_iterator.Name -Context $ context $ blob_count_deleted + = 1 } }  

Вы можете обратиться к этому за дополнительной информацией.

Еще одна тема, которая может быть полезна для вашего варианта использования.

Надеюсь, это поможет !!!

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

.

окон - Как удалить файлы старше x дней с помощью FORFILES?

Переполнение стека
  1. Около
  2. Продукты
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
.

Смотрите также