Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Удаление файлов кроме сегодняшнего

Ответить
Настройки темы
CMD/BAT - [решено] Удаление файлов кроме сегодняшнего

Аватара для Kenwood

Пользователь


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

Профиль | Отправить PM | Цитировать


Здравствуйте,

У меня возникла задачка: в папке имеются логи за несколько лет. Каждый день программа создает новый файл. Все бы ничего, если бы не возникла потребность удалять файлы по причине отсутсвия места на диске. Можно конечно было вручную снести все файлы, но хочется автоматизировать данный процесс. Так вот, как сделать так, чтобы в одной конкретной папке удалялись файлы старше 1-х суток. Программа каждые сутки создает файл типа: ftp20130301.log, вчера ftp20130228.log и так далее.....

Заранее спасибо

Отправлено: 15:34, 01-03-2013

 

Аватара для mariolast

Ветеран


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

Профиль | Отправить PM | Цитировать


Подниму тему.
А если файл вида 2021-05-10-07-42_11.02.038_03565688.ZBF ?
Как тут можно отфильтровать в названии дату?

Отправлено: 07:45, 10-05-2021 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Аватара для mariolast

Ветеран


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

Профиль | Отправить PM | Цитировать


Есть прога MEDOC, она делает через планировщик резервные копии файловв заданную папку. Каждый день
Так как база уже довольно большая, то размер одного файла 1,5 гига
Мне же надо самый свежий копировать себе на NAS каждый день
Вот стоит задача, удалить из папки файлы, старше 1 суток.
То, что осталось, программой резервного копирования архивирую и перекидываю в NAS

Отправлено: 09:31, 10-05-2021 | #12


Ветеран


Contributor


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

Профиль | Отправить PM | Цитировать


mariolast, что такое старше суток? Это только сегодня, или вчера+сегодня, или сейчас - 24часа?

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


Отправлено: 09:49, 10-05-2021 | #13


Аватара для mariolast

Ветеран


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

Профиль | Отправить PM | Цитировать


Только сегодня

Отправлено: 10:29, 10-05-2021 | #14


Аватара для DJ Mogarych

fascinating rhythm


Moderator


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

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
powershell -command "dir 'C:\temp' |? {($_.LastWriteTime).date -ne (get-date).Date} |del"

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)

Это сообщение посчитали полезным следующие участники:

Отправлено: 10:35, 10-05-2021 | #15


Ветеран


Contributor


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

Профиль | Отправить PM | Цитировать


mariolast,
Цитата mariolast:
Только сегодня »
Код: Выделить весь код
@Echo Off
cls
	Set "BoxIn=Z:\Backup"
	Set "Ext=.ZBF"
	Set "Mask=20??-??-??-??-??_??.??.???_????????%Ext%"

	FOR /F "tokens=2 delims==." %%d in ('WMIC OS GET LOCALDATETIME /VALUE') DO Set "Now=%%d"
	Set "Now=%Now:~0,4%-%Now:~4,2%-%Now:~6,2%-"

	For /f "usebackq delims=" %%f In (`2^>nul Dir /B /A:-D "%BoxIn%\%Mask%" ^| findstr.exe /R /I /V /C:"^%Now%.*\%Ext%$"`) Do (
		echo Del "%BoxIn%\%%f"
	)
pause
Exit /B
Чтобы реально удалялось, уберите echo

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


Последний раз редактировалось megaloman, 10-05-2021 в 10:58.

Это сообщение посчитали полезным следующие участники:

Отправлено: 10:51, 10-05-2021 | #16


Ветеран


Contributor


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

Профиль | Отправить PM | Цитировать


mariolast, Если только за сегодня без привязки к имени
Код: Выделить весь код
@Echo Off
cls
	Set "BoxIn=Z:\Backup"
	Set "Mask=20??-??-??-??-??_??.??.???_????????.ZBF"

	2>nul FORFILES /P "%BoxIn%" /M "%Mask%" /D -1 /C "CMD /C Echo Del @Path"
pause
Exit /B
Чтобы реально удалялось, уберите echo

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


Отправлено: 11:43, 10-05-2021 | #17



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Удаление файлов кроме сегодняшнего

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Удаление всех файлов из папки кроме батника composter Скриптовые языки администрирования Windows 11 30-03-2013 08:25
CMD/BAT - Удаление всех файлов кроме одного в подпапках SELFY Скриптовые языки администрирования Windows 2 29-07-2012 15:34
Любой язык - удаление всех символов кроме шаблона gendalf Скриптовые языки администрирования Windows 3 19-07-2012 16:21
Любой язык - Удаление файлов старше 5 дней кроме указанного по имени. Joni Скриптовые языки администрирования Windows 6 11-07-2012 11:18
MSFT SQL Server - [решено] Удаление баз кроме ... Butunin Klim Программирование и базы данных 5 23-04-2009 10:01




 
Переход