|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Удаление созданных папок и файлов по времени |
|
CMD/BAT - [решено] Удаление созданных папок и файлов по времени
|
Старожил Сообщения: 157 |
Всем добрый день!!!!
есть необходимость дописать скрипт, я в этом деле не мастер, но вот сейчас понадобилось. Вот существующий for /f "tokens=5,7,6 delims=_ " %%i in ('date /t') do (set date = %%i-%%j-%%k) echo %date% set new_name=%date% echo %new_name% Mkdir d:\Backup\%new_name% CD /D d:\Backup\%new_name% Xcopy d:\mazda /S /E Суть такова, делается папка с названием даты (число, месяц, год), необходимо чтобы после отрабатывания вот этого скрипта удалялись папки недельной давности отсчетом от вновь созданного. Например: Сегодня создалась утром папка 03.07.09, а уавтоматом удалилась 27.06.09. Заранее всем благодарен!!!! |
|
Отправлено: 14:32, 03-07-2009 |
Старожил Сообщения: 426
|
Профиль | Отправить PM | Цитировать В скрипт не вчитывался, но возможно, что достаточно в процедуре удаления заменить условие If %$D% EQU 01 на If %$D% LEQ 03, тогда условие будет отработано 1, 2 и 3го числа, но сначала протестируйте "на кошках"
ЗЫ: По-хорошему это вопрос должен был быть задан здесь: http://forum.oszone.net/thread-144124.html |
------- Последний раз редактировалось NiOl, 06-08-2009 в 18:02. Причина: наткнулся на исходник Отправлено: 18:00, 06-08-2009 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 157
|
Профиль | Отправить PM | Цитировать Поменял значение LEQ 01 на LEQ 03. "Кошки" остались живы, а вот удаление так и не произошло.
PS: Тему ту создавал я,и как раз сейчас идет доработка скрипта!!!!!!!!!! |
Отправлено: 10:25, 07-08-2009 | #12 |
Старожил Сообщения: 426
|
Профиль | Отправить PM | Цитировать ответил здесь >>
|
------- Отправлено: 12:42, 07-08-2009 | #13 |
Старожил Сообщения: 426
|
Профиль | Отправить PM | Цитировать В неделе 2 выходных дня (насколько понял в шедл указано запускать только по рабочим дням), поэтому если процедура удаления будет запускаться 1го, 2го и 3го числа (не 6го как вчера или 7го, как сегодня), то как минимум один из 3х дней попадет на будни. А в этот раз Вам нужно удалить ручками.
|
------- Отправлено: 12:45, 07-08-2009 | #14 |
Старожил Сообщения: 157
|
Профиль | Отправить PM | Цитировать Я опять тебя не понимаю!!!!! Тот топик завел я и отвечал мне на него AMEL27. Я его там задам!!!! Только скажи, ты то помочь сможешь?????
|
Отправлено: 12:46, 07-08-2009 | #15 |
Старожил Сообщения: 157
|
Профиль | Отправить PM | Цитировать в августе месяце удаление июльских файлов не произошло, так как 1 и 2 числа были суббота и воскресенье, а по этим дням бэкапы не делаются!!!! подскажите как доработать скрипт чтобы таких ситуаций не возникало. Заранее спасибо!!!
Echo Off Set $SRC=D:\Mazda\2008 Set $DST=D:\Full_Backup :: Текущие день/месяц/год For /F "Tokens=1 Delims=." %%i In ('WMIC OS Get LocalDateTime^|Find "."') Do Set $Time=%%i Set $Y=%$Time:~0,4%&Set $M=0%$Time:~4,2%&Set $D=0%$Time:~6,2% Set $M=%$M:~-2%&Set $D=%$D:~-2% :: Копирование каталога XCopy /S/E/D/C/Q/exclude:C:\scripts\excludelist.txt %$SRC%\* %$DST%\%$D%.%$M%.%$Y%\ :: Дата 1-го дня предыдущего месяца Set /A $M=%$M%+11-((%$M%+10)/12)*12 Set $M=0%$M% Set $M=%$M:~-2% If %$M% EQU 12 Set /A $Y-=1 :: Удаляем старые архивные каталоги If %$D% EQU 01 For /F "Tokens=1-3 Delims=." %%i In ('DIR /B/A:D %$DST%\??.??.????') Do If %%k%%j%%i LSS %$Y%%$M%01 @Echo RD /S/Q "%$DST%\%%i.%%j.%%k" То есть поменять значение EQU 01 на EQU 03 и ждать следующего месяца?????? |
Отправлено: 12:48, 07-08-2009 | #16 |
Старожил Сообщения: 426
|
Профиль | Отправить PM | Цитировать У тебя возникла проблема. Ты для нее завел тему. Сейчас ты завел вторую тему по тому же вопросу. А отвечают в темах все, у кого есть на то возможность. Потому и ответил я именно в той ветке. Если кратко повторить мой ответ - в следующий раз скрипт должен удалить, но не сегодня, т.к. уже 7е число. Чтобы скрипт отрабатывал более точно, то предложенных исправлений недостаточно.
|
------- Отправлено: 13:13, 07-08-2009 | #17 |
Старожил Сообщения: 426
|
Профиль | Отправить PM | Цитировать Цитата zavoruev:
tще в примере заметил вообще невыполняющуюся команду удаления - она просто выводится на экран. Нужно убрать "@Echo", чтобы сразу шло "RD..." далее, можно вообще убрать условие "If %$D% EQU 01", оставив "FOR...", тогда скрипт будет пытаться удалять старые каталоги при каждом запуске, т.е. каждый день. Это будет лишним временем выполнения, но тогда точно удалит. |
|
------- Отправлено: 13:20, 07-08-2009 | #18 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать zavoruev, слушай NiOl, он дело говорит...
![]() FYI: Как сообщить о том, что моя проблема решена? |
Последний раз редактировалось amel27, 08-08-2009 в 14:38. Причина: добавил линк Отправлено: 12:46, 08-08-2009 | #19 |
Новый участник Сообщения: 3
|
Профиль | Отправить PM | Цитировать В продолжении темы, ребят пожалуйста помогите написать следующий батник. Требуется из папки сделать выборку файлов старше например 6 дней с даты создания переместить в другую папку и за архивировать. Я написал скрипт архивации но вот как по дате сделать даже и не знаю т.е как выбрать файлики лежащие в этой папке больше 6 дней.
Скрипт: setlocal ENABLEDELAYEDEXPANSION set day=%date:~0,2% set month=%date:~3,2% set year=%date:~6,4% set today=%year%%month%%day% set /a yesterday=today 7z a -tzip D:\tmp\Work\archiv_%yesterday% %fpath% *.txt del D:\tmp\Work\*.txt P.S надо сделать именно 7-zip т.к он бесплатный... |
Отправлено: 12:59, 19-08-2009 | #20 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Удаление папок по критериям | jentoso | Скриптовые языки администрирования Windows | 16 | 17-06-2009 11:38 | |
Любой язык - [решено] удаление файлов по маске, созданных за прошлые сутки | BRAT2 | Скриптовые языки администрирования Windows | 1 | 06-04-2009 08:51 | |
VBS/WSH/JS - [решено] Удаление файлов созданных ранее текущей даты на неделю | KillHunter | Скриптовые языки администрирования Windows | 5 | 06-03-2009 12:23 | |
[решено] Удаление файлов и папок | ArGoth | Автоматическая установка Windows 2000/XP/2003 | 1 | 26-05-2008 18:03 | |
Удаление всех папок и файлов из папки c:\Temp | DIKPro | Microsoft Windows NT/2000/2003 | 10 | 15-08-2006 16:20 |
|