bat удалить файлы старше 7 дней
CMD Скрипт удаление файлов старше n дней
Удаление файлов через cmd утилитой forfiles.exe
Пример как с ее помощью можно удалять бекапы старше 20 дней:
обычный батник — и вуаля само делает неинтересную работу..
справка по FORFILES
Выбор файла (или набора файлов) и выполнение команды
с этим файлом. Программа полезна для пакетных заданий.
/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
/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»
Удаление файлов старше n дней
Иногда надо сделать удаление файлов старше n дней. Например Backup’ ы. Можно делать это вручную, отсортировать их по дате и удалить, а можно воспользоваться скриптом. В данном примере мы рассмотрим скрипт для удаления файлов старше n дней и добавим задание в планировщик Windows Server 2012R2.
Иногда надо сделать удаление файлов старше n дней. Например Backup’ ы. Можно делать это вручную, отсортировать их по дате и удалить, а можно воспользоваться скриптом. В данном примере мы рассмотрим скрипт для удаления файлов старше n дней и добавим задание в планировщик Windows Server 2012R2.
Содержание:
1. Скрипт удаления файлов старше n-дней
2. Создание задания в планировщике задач
#Скрипт удаления файлов старше n-дней
Скрипт на самом деле очень простой, создается в PowerShell и выглядит он следующим образом:
Вот так это выглядит в PowerShell:
Осталось только его выполнить и все.
#Создание задания в планировщике задач
Итак, что нам для этого надо?
Выбираем пункт «Создать задачу«:
На вкладке «Общие» задаем имя задания, его описание и пользователя, от которого оно будет выполняться. По умолчанию там будет пользователь, под которым вы вошли в данный момент в систему.
Далее переходим на вкладку «Триггеры» и создаем расписание, когда мы будем запускать наше задания. У меня настроено в 10:00 каждые 2 дня.
Далее идем на вкладку «Действия» и задаем действие, которое будет выполняться. Выбираем «Запуск программы»
программу или сценарий
и указываем путь до PowerShell:
А аргументе указываем путь до нашего скрипта, который мы создали ранее:
Нажимаем «Ок» и еще раз «Ок«
Все, на этом наше задание создано. Осталось дождаться, когда будет выполнено наше действие по расписанию и проверить, все ли правильно было настроено.
Блог вебмастера
создание сайтов, заработок в сети, раскрутка, программирование
Как удалять файлы старше 10 дней на windows
Делаю бекапы каждый день, накапливается не один десяток гигабайт информации. Чистить нужно, тем более старые бекапчики особой важности не несут. Раньше удалял вручную, но потом задумался… Вручную делать это лень, тем более можешь завтыкать, протупить и удалить не то. Короче, ленивый сделает лучше всех — нужно автоматизировать.
Воспользовался встроенной утилитой forfiles. Теперь все делает планировщик задач и несложный bat-ник в две строки. Пример дальше.
Команды forfiles. Примеры
Разберем ключи по порядку:
Также результаты исполнения скрипта можно записать в файл.
Если нужно их записать в файл, то добавьте в конце знак БОЛЬШЕ и адрес куда сохранить файл (лучше всего прописать полный путь).
forfiles /p C:\ /m *.exe /s /c «cmd /c echo @path» > D:\all_exefiles.txt
Вставляем код в cmd:
Forfiles. Запись в файл выполненного скрипта
Результат — созданный файл на диске D:\ и его содержимое (можно много интересного найти):
Forfiles. Запись в файл выполненного скрипта. Результат
Пример forfiles с переменными путь, дата, размер
forfiles /p D:\ /m *.zip /s /c «cmd /c echo @path изменен @fdate и размером @fsize байт »
Вот результат выполнения скрипта:
Команды forfiles. Используем переменные со своим текстом
Как удалить файлы старше 10 дней
Как удалить папки старше 7 дней с помощью forfiles
Bat удалить файлы старше 7 дней
Сообщения: 191
Благодарности: 19
но в этом случае в файле получаю первую пустую строку и путь к файлу в кавычках:
«D:\temp1\20130830000000.txt»
«D:\temp2\20130831000000.txt»
и т.д.
Поэтому решил попробовать просто передавать в другой исполняемый файл имя файла для архивирования:
Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.
папки D:\Archive копировать в папку D:\Archive\OLD файлы всех архивов 15 и 30 числа каждого месяца » |
——-
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.