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

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

Ответить
Настройки темы
CMD/BAT - Автоматическое удаление файлов

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


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

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


День добрый. Поскажите решение данной задачи :раз в сутки очистить папку "Obmen". Заархивировать и скопировать содержимое папки в паку "Arh" (на всякий случай ) и удалить содержимое (папки и файлы). Желательно с помощью bat-ника
Спасибо.

Отправлено: 14:14, 24-08-2009

 

Ветеран


Contributor


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

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


Цитата:
... например сейчас сентябрь, батник бы заархивировал и удалил бы потом все файлы которые были созданы до июня
Смотрим справку WinRar
читать дальше »
Цитата:
Ключ -TB<дата>
При указании этого ключа будут обрабатываться только файлы, модифицированные до указанной даты.
Дата указывается в следующем формате: ГГГГММДДЧЧММСС. В поле даты допускается вставлять символы-разделители ('-' или ':') и не указывать оставшиеся поля. Например, следующий ключ будет правильным: -tb2001-11-20
Если говорить точнее, при внутренней обработке RAR будет трактовать вышеуказанный ключ как -tb20011120000000, что означает: "файлы, изменённые до 0 часа 0 минут 0 секунд 20 ноября 2001 года" (т.е. сама эта дата в заданный диапазон времени не входит).
Код: Выделить весь код
@Echo Off
rem Если дата в системе в формате дд.мм.гггг
rem Delta - сколько месяцев не трогать (здесь не более 12)

Set Delta=3

Set Otkuda=D:\Tmp
Set Kuda=D:\TmpRar

Set Rar="C:\Program files\Winrar\Winrar.exe"

Set /A YYYYMM=%Date:~6,4%%Date:~3,2%-%Delta%
If %YYYYMM% LSS %Date:~6,4%01 Set /A YYYYMM=%YYYYMM%-88

Set DPack=%YYYYMM%01000000
%Rar% a -r -df -ep1 -tb%DPack% "%Kuda%\%DPack%" "%Otkuda%\"

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


Последний раз редактировалось megaloman, 27-09-2011 в 15:24.

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

Отправлено: 12:54, 27-09-2011 | #11



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

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


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


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

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


А как сделать так чтобы структура папок оставалась, а удалялись(архивировались) только файлы в папках и подпапках. удаление ключа -tb это же не выход.

Последний раз редактировалось Fen1kc16, 18-12-2011 в 23:31.


Отправлено: 23:20, 18-12-2011 | #12


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


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

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


К вопросу о ключах WinRAR: архивирую офис. документы обновлением для быстроты
Код: Выделить весь код
rar.exe u -m0 -r -ri15 -n*.doc -n*.xls -n*.txt c:\docs.rar *.*
но потом заметил, что файлы, удаляемые на рабочем столе, остаются в архиве. Как исправить?
(в принципе можно и 7z)

-------
Alex Dragokas


Отправлено: 23:59, 18-12-2011 | #13


Ветеран


Contributor


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

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


Fen1kc16, если модернизировать мой предыдущий код, то, чтобы структура папок оставалась (при условии, что у папок нет каких-то особых доступов и параметров безопасности)
Код: Выделить весь код
@Echo Off
rem Если дата в системе в формате дд.мм.гггг
rem Delta - сколько месяцев не трогать (здесь не более 12)

Set Delta=3

Set Otkuda=D:\Tmp
Set Kuda=D:\TmpRar
Set Rar="C:\Program files\Winrar\Winrar.exe"

SETLOCAL ENABLEEXTENSIONS 
SETLOCAL ENABLEDELAYEDEXPANSION

del "~%0.bat" >Nul 1>nul 2>Nul

FOR /R "%Otkuda%" %%d IN (.) DO  (
   Set dDir=%%d
   Echo md "!dDir:~0,-1!" >>"~%0.bat" 
)

Set /A YYYYMM=%Date:~6,4%%Date:~3,2%-%Delta%
If %YYYYMM% LSS %Date:~6,4%01 Set /A YYYYMM=%YYYYMM%-88

Set DPack=%YYYYMM%01000000
%Rar% a -r -df -ep1 -tb%DPack% "%Kuda%\%DPack%" "%Otkuda%\"

Call "~%0.bat"
del "~%0.bat" >Nul 1>nul 2>Nul
То есть я создаю подпапки заново, если в процессе архивации они были удалены. Либо вариант, создать во всех папках какой-нибудь файл. Так как его время создания сегодня, архивироваться он не будет, и папка раром не удалится, так как не пустая. После архивации служебные файлы можно поудалять. Здесь папки не пересоздаются - удаления нет.
Код: Выделить весь код
@Echo Off
rem Если дата в системе в формате дд.мм.гггг
rem Delta - сколько месяцев не трогать (здесь не более 12)

Set Delta=3

Set Otkuda=D:\Tmp
Set Kuda=D:\TmpRar
Set Rar="C:\Program files\Winrar\Winrar.exe"

SETLOCAL ENABLEEXTENSIONS 
SETLOCAL ENABLEDELAYEDEXPANSION

FOR /R "%Otkuda%" %%d IN (.) DO  (
   Set dDir=%%d
   Echo 1 >"!dDir:~0,-1!~%0.bat" 
)

Set /A YYYYMM=%Date:~6,4%%Date:~3,2%-%Delta%
If %YYYYMM% LSS %Date:~6,4%01 Set /A YYYYMM=%YYYYMM%-88

Set DPack=%YYYYMM%01000000
%Rar% a -r -df -ep1 -tb%DPack% "%Kuda%\%DPack%" "%Otkuda%\"

del "%Otkuda%\~%0.bat" /S

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


Последний раз редактировалось megaloman, 19-12-2011 в 20:31.

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

Отправлено: 20:17, 19-12-2011 | #14


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


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

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


Я немного по другому решил эту проблему просто добавил в твой предыдущий скрипт одну строку.

Код: Выделить весь код
Set Gde=F:\Desktop\obmen
Set Kuda=F:\Desktop\obmenarh

Set TDate=%date:~6,4%%date:~3,2%%date:~0,2%

If Exist %Kuda%\%TDate%.rar GoTo End

MD %Kuda%

"%programfiles%\WinRar\Winrar.exe" a -r -ed  -tb%TDate%0001 %Kuda%\%TDate%.rar %Gde%\*.*

forfiles /P %Gde% /s /d -1 /c "cmd /c del @file /q

:End
ТАк можно или есть какие то подводные камни?

В 2003 server дата выводится как dd/mm/yy, из-за этого винрар не может создать архив, как с этим бороться?

Последний раз редактировалось Fen1kc16, 20-12-2011 в 12:48.


Отправлено: 08:05, 20-12-2011 | #15


Ветеран


Contributor


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

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


Fen1kc16,
1. У меня в XP forfiles нет, поэтому для совместимости я им не пользуюсь.

2. Если у вас дата dd/mm/yy то можно сделать (строку взял вашу и изменил)

Set TDate=20%date:~6,2%%date:~3,2%%date:~0,2%

То есть я добавил 20 чтобы вместо Вашего 11 получилось 2011. По идее, рар должен такое взять (я не проверял, это почти очевидно). Вам за 88 лет работы менять ничего не придётся.
То же, но будет работать и для формата дд.мм.гггг

Set TDate=20%date:~-2%%date:~3,2%%date:~0,2%

То есть вырезаю два последних символа в дате

3. В 2003 форматы отображения, в частности, даты, настраивается: Региональные параметры - Настройка - Дата - Там можно выставить формат даты как Вам нравится. Я предпочитаю дд.мм.гггг

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


Последний раз редактировалось megaloman, 20-12-2011 в 15:03.

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

Отправлено: 13:10, 20-12-2011 | #16


Ветеран


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

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


Цитата megaloman:
1. У меня в XP forfiles нет, поэтому для совместимости я им не пользуюсь. »
В Resource Kit'е есть.
Это сообщение посчитали полезным следующие участники:

Отправлено: 14:26, 20-12-2011 | #17


Аватара для 6umer

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


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

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


Добрый вечер. прочитал эту тему. но сообразить не могу все же...
необходим батник стартующий из автозапуска, и архивирующий папу расположенную в корне диска C:\
в каталог лежащий в том же диске.
архиватор бесплатный 7zip.
помогите пожалуйста кодом.

Отправлено: 17:42, 23-05-2013 | #18


Ветеран


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

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


Код: Выделить весь код
@ "%ProgramFiles%\7-Zip\7z.exe" a "C:\Куда архивировать\Архив.7z" "C:\Некая папка\"
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:50, 23-05-2013 | #19


Аватара для 6umer

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


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

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


спасибо.
не думал что настолько простой батник ..
здесь же помоему не хватает ключевых команд ...

Отправлено: 17:58, 23-05-2013 | #20



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Службы - Автоматическое удаление очереди при печати icold Microsoft Windows 2000/XP 0 15-12-2009 13:26
Разное - CloneSpy - автоматическое/полуавтоматическое удаление дубликатов файлов ShaRP Программное обеспечение Windows 0 25-05-2008 19:54
Автоматическое удаление приложений.. mikola1983 Автоматическая установка приложений 4 29-09-2007 11:05
Автоматическое удаление KAV 5.0 Personal djoniAg Автоматическая установка приложений 3 15-02-2007 16:15
[решено] Автоматическое удаление файлов из директорий BigMac Microsoft Windows NT/2000/2003 19 29-05-2005 22:32




 
Переход