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

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

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

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


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

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


Изменения
Автор: ApxapoBeu
Дата: 18-09-2012
Здравствуйте. Прошу знающих людей проверить мой скрипт. Он работает и выполняет то, что от него требуется, но перед тем, как отправить его в планировщик, хотелось бы убедиться, что он безопасен.
Скрипт должен удалять из заданной папки .7z архивы, которые старше %delta% месяцев (принимать значение больше 12 дельта точно не будет), и доложить об удалении в лог.
читать дальше »

@Echo off

SetLocal EnableDelayedExpansion

SET PATH_LOG=C:\Archive\LOG\
SET LOG_FILE=Event.log
Set del7z=c:\archive\*.7z
set delta=2
set yyyy=%date:~6,4%
Set /A MM=1%Date:~3,2%-%Delta%-100
if %mm% lss 1 (
set /a mm=12+%mm%
set /a yyyy=%yyyy%-1
)
set dd=%date:~0,2%
if %dd% gtr 29 set dd=29
if %mm% lss 10 (
set yyyymmdd=%yyyy%0%mm%%dd%
) else (
set yyyymmdd=%yyyy%%mm%%dd%
)
echo %yyyymmdd%

for %%i in (%del7z%) do (
set $t=%%~ti& set $d=!$t:~6,4!!$t:~3,2!!$t:~,2!
if !$d! LSS %yyyymmdd% (
DEL /F "%%i"
echo %DATE:~6,4%-%DATE:~3,2%-%DATE:~0,2% - %TIME:~0,-3% - %%~ni.7z - Удален - OK >>"%PATH_LOG%%LOG_FILE%"
)
)

Отправлено: 19:27, 18-09-2012

 

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


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

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


можно обойтись сделующим:

forfiles /P c:\archive\ /M *.7z /S /D -31 /C "cmd /c echo Deleted: @PATH >> %DIR_log%erase.log & del @FILE"

где:

синим выделено

/D <дата>
Выбор файлов, у которых дата последнего изменения больше или равна (+) либо меньше или равна (-) указанной дате при использовании формата "dd.MM.yyyy"; либо файлов, у которых дата последнего изменения больше или равна (+) текущей дате плюс "dd" дней либо меньше или равна (-) текущей дате минус "dd" дней. Допустимым числом дней "dd" является любое число в диапазоне 0 - 32768. "+" используется по умолчанию, если знак не указан

Отправлено: 13:00, 19-09-2012 | #2



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

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


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


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

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


2 firstarey
Спасибо за ответ, но скрипт будет запускаться на хр, в которой нет forfiles. наверное можно запилить forfiles и для хр, но я решил пойти другим путем

Отправлено: 17:03, 19-09-2012 | #3


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


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

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


Скрипт в планировщике 3 недели. пока все ок

Отправлено: 10:34, 08-10-2012 | #4



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Удалить всё кроме заданной папки sg_swin Скриптовые языки администрирования Windows 18 30-06-2021 19:19
CMD/BAT - [решено] Удаление старых архивов wizardkir Скриптовые языки администрирования Windows 9 20-08-2013 14:16
CMD/BAT - Мониторинг - поиск архивов с заданной датой в имени Serg2010 Скриптовые языки администрирования Windows 0 21-05-2012 21:59
CMD/BAT - удаление архивов [cmd] far_from_humans Скриптовые языки администрирования Windows 0 01-12-2011 17:34
удаление повреждённых архивов Jul Защита компьютерных систем 2 17-01-2004 15:56




 
Переход