Имя пользователя:
Пароль:
 | Правила  

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

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

Новый участник


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

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


Добрый день!
Нашел статью Ссылочка, там удаление папок старше n дней, но поиск делается по маске имени, можно ли сделать, что бы удаление было по дате создания ?

Код: Выделить весь код
@Echo Off

Set Arhiv=D:\arhiv
Set DeltaDay=-10

SetLocal EnableDelayedExpansion
Call :FromNow %DeltaDay% %Date%

FOR /F "usebackq delims=" %%d IN (`Dir "%Arhiv%\" /A:D /B`) DO If %%d LSS %yyyymmdd% Rd "%Arhiv%\%%d" /s /q
GoTo :Eof

:FromNow
rem
rem Пересчет даты на заданное кол-во дней
rem Формат даты dd.mm.yyyy +- дни получим новые yyyymmdd
rem
rem Пример использования
rem 
rem SetLocal EnableDelayedExpansion
rem Set DeltaDay=-10
rem Call :FromNow %DeltaDay% %Date%
rem Echo %Date%  %DeltaDay%  %yyyymmdd%

 SetLocal
 Set DT=%2
 Set yyyy=%DT:~-4%& set /a mm=100%DT:~3,2%%%100& set /a dd=100%DT:~,2%%%100
 Set /A JD=%~1+dd-32075+1461*(yyyy+4800+(mm-14)/12)/4+367*(mm-2-(mm-14)/12*12)/12-3*((yyyy+4900+(mm-14)/12)/100)/4
 Set /A L=JD+68569,N=4*L/146097,L=L-(146097*N+3)/4,I=4000*(L+1)/1461001
 Set /A L=L-1461*I/4+31,J=80*L/2447,K=L-2447*J/80,L=J/11
 Set /A J=J+2-12*L,I=100*(N-49)+I+L
 Set /A yyyy=I,mm=100+J,dd=100+K
 EndLocal& Set yyyymmdd=%yyyy%%mm:~-2%%dd:~-2%
GoTo :Eof

Отправлено: 11:53, 04-07-2013

 

Ветеран


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

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


greenOwl, PowerShell — не лишнее. Это нынешнее средство администрирования, пришедшее на смену пакетным файлам и WSH.

Отправлено: 16:43, 04-07-2013 | #11



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

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


Ветеран


Contributor


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

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


Цитата:
там удаление папок старше n дней, но поиск делается по маске имени, можно ли сделать, что бы удаление было по дате создания ?
Если по дате создания, а дату надо выдернуть из имени "НазваниеБазы_ддммгггг", то, при условии, что в папке, где хранятся удаляемые подпапки, кроме них нет папок с иными именами
Код: Выделить весь код
@Echo Off
cls

Set "DelDate=20140713
Set "Where=D:\tralala\kuku"

SetLocal EnableExtensions EnableDelayedExpansion

FOR /F "usebackq delims=" %%i IN (`Dir /B /T:C /A:D "%Where%\*.*" 2^>nul`) DO (
	Set DDir=%%~ti
	Set DDir=!DDir:~-10!
	Set DDir=!DDir:~4,4!!DDir:~2,2!!DDir:~0,2%!
        If !DDir! LSS %DelDate% @echo Rd "%Where%\%%i" /S /Q
)
Цитата:
мне нужно не много переделать именно тот код, который написан в первом сообщении...
ИМХО, разные задачи - разный код, зачем городить огород избыточными средствами?

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

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

Отправлено: 16:54, 04-07-2013 | #12


Новый участник


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

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


Извиняюсь, не увидел вторую страницу
Всем спасибо!

Отправлено: 16:39, 05-07-2013 | #13



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Удаление файлов по дате AlexPebody Скриптовые языки администрирования Windows 6 25-07-2013 16:33
CMD/BAT - Удаление файлов по дате interminable Скриптовые языки администрирования Windows 1 07-06-2012 15:48
CMD/BAT - [решено] Удаление файлов по дате больших размеров. Sony777 Скриптовые языки администрирования Windows 11 03-06-2012 16:23
CMD/BAT - [решено] Удаление папки по дате Obnin Скриптовые языки администрирования Windows 8 14-12-2011 13:21
CMD/BAT - Удаление файлов по дате ADGJMPTW Скриптовые языки администрирования Windows 1 10-10-2010 20:08




 
Переход