|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] сделать бат файл, который архивирует файлы по их созданию по месяцам |
|
|
CMD/BAT - [решено] сделать бат файл, который архивирует файлы по их созданию по месяцам
|
Пользователь Сообщения: 132 |
Здравствуйте!
Мне нужно помощь, буду очень благодарен за любой совет. не могу сделать бат файл, который архивирует файлы по их созданию по месяцам. например в папке "Дос" лежит файлы, один из которых создан 30.11.2011 в 11 ночи, другой создан 01.12.2011. 1 ночи после архивации они должны лежать в двух архивах, например 1. 11.2011.rar, 2. 12.2011. Я делал так, но у меня по расписанию архивация запускается каждый день в 18:00 : "C:\Program Files\WinRAR\winrar.exe" a -r -df -ag+YYYY-MM "ДОС" но оно сохраняет эти два файла в один в один файл. Я просто никогда не делал бат файл, и не могу это сделать, прошу помочь! |
|
Отправлено: 12:50, 28-12-2011 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Qwerty!!:
Цитата:
Цитата Qwerty!!:
2. 12.2011». |
|||
Отправлено: 15:25, 28-12-2011 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 53
|
Профиль | Отправить PM | Цитировать |
Отправлено: 13:47, 29-12-2011 | #3 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать RedX, автору нужно помещать файлы в архивы, имеющие имена как-то связанные со временем создания этих самых файлов. Ждём разъяснений.
|
Отправлено: 18:35, 29-12-2011 | #4 |
Пользователь Сообщения: 148
|
Профиль | Сайт | Отправить PM | Цитировать Я понял, что файлы, созданные в январе должны находится в архиве 1.2012.rar, в феврале - 2.2012.rar ...
|
|
------- Отправлено: 00:10, 30-12-2011 | #5 |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать Как я понимаю, файлы должны архивироваться в архивы с именами по времени создания, а не по времени, когда был запущен WinRar. Вот вариант решения. Предполагаю, что формат даты в системе установлен как дд.мм.гггг, в противном случае надо подкорректировать строку
Set DataFile=!DataFile:~6,4!!DataFile:~3,2! В результате работы создаются архивы файлов из папки E:\Delete в папке E:\Delete.rar под именами, соответствующими дате файла. Я предпочитаю имена вида ГГГГММ.rar -они логически хорошо сортируются по имени. @Echo On Rem Если Дата в системе в формате дд.мм.гггг Set From=Z:\информационные технологии\данные\дос Set To=Z:\информационные технологии\архив\дос Set Rar="C:\Program Files\WinRar\WinRar.exe" a -r -df SETLOCAL ENABLEEXTENSIONS SETLOCAL ENABLEDELAYEDEXPANSION Md "%To%" >nul 1>nul 2>nul FOR /F "usebackq delims=" %%f IN (`Dir "%From%" /b /s /A:-D`) DO ( Set DataFile=%%~tf Set DataFile=!DataFile:~6,4!!DataFile:~3,2! %Rar% "%To%\!DataFile!" "%%f" ) Set DataFile=!DataFile:~6,4!!DataFile:~3,2!!DataFile:~0,2! При этом будем иметь архивы вида ГГГГММДД.rar Не важно, когда запускаем архивацию, важна дата последней модификации файла. Все файлы с этой одинаковой датой попадут в один архив вне зависимости от того, когда этот файл попал в директорию или когда запустили архиватор. Можете через неделю запустить архиватор - фаилы разбредутся по нужным архивам. Для сетевых папок отдельно не проверял, но, ИМХО, при указании сетевого пути папок батник будет работать, лишь бы хватало для этого пров доступа. |
------- Последний раз редактировалось megaloman, 05-01-2012 в 15:41. Причина: Исправление неточности Отправлено: 11:10, 30-12-2011 | #6 |
Пользователь Сообщения: 132
|
Профиль | Отправить PM | Цитировать RedX,
Дело в том что, он срабатывает так: если я задание поставил в 6 вечера, тогда он все файлы принятые после 6, будет вкладывать в другой архив. Мне нужно например программа приняла файлы в базу 10 штук, архив должен определить время их создания, после закинуть в архив или создать новый архив если его нет с текущей датой с именем. а данная команда так не делает, он тупо архивирует все в один архив, когда он будет запущен. например в папке находится 15 файлов, 5 из которых был принят в 01.01.2012, а еще 5 были приняты в 02.01.2012, а еще 5 были приняты в 03. 01.2012, после запуска бат файла, он должен создать 3 архива с именем, например 01012012ТТ.rar, 02012012ТТТ.rar и 03012012ТТТ.rar. |
Отправлено: 13:38, 04-01-2012 | #7 |
Пользователь Сообщения: 132
|
Профиль | Отправить PM | Цитировать megaloman, megaloman, megaloman, megaloman, Diskretor,
Здравствуйте. Я так и хочу, но при моей команде он в принципе архивирует, но те файлы которые были получены после архивации он включает его уже в другой архив. |
Отправлено: 13:54, 04-01-2012 | #8 |
Пользователь Сообщения: 132
|
Профиль | Отправить PM | Цитировать [b]megaloman[/
Здравствуйте! Извините я не правильно отписался, он работает. А как сделать чтобы он сработал с сетевым диском? на клиентской машине подключен сетевой диск, и чтобы он запускался от туда, а не на сервере? |
Отправлено: 09:15, 05-01-2012 | #9 |
Пользователь Сообщения: 132
|
Профиль | Отправить PM | Цитировать megaloman
Просто я пробовал, он не может определить сетевой пусть. Я Вот здесь Set From=E:\Delete Set To=E:\Delete.rar написал так {chcp 1251 и с ним и без него пробЫвал.} Set From=Z:\информационные технологии\данные\дос Set To=Z:\информационные технологии\архив\дос. не может определить сетевой пусть, и архивирует туда откуда запустил бат файл. А так на локалке работает отлично. |
Отправлено: 12:44, 05-01-2012 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Как сделать скрипт, который запускает определённую программу или файл | VadimN96 | Автоматическая установка Windows 2000/XP/2003 | 1 | 07-01-2011 21:24 | |
CMD/BAT - Возможно ли создать бат файл который считывал бы раз в сессию внешний ip и ... | karpinsk | Скриптовые языки администрирования Windows | 6 | 11-12-2010 11:04 | |
CMD/BAT - [решено] Бат файл для копирования, копировать каталог в много мест | rexover | Скриптовые языки администрирования Windows | 1 | 15-04-2010 08:04 | |
CMD/BAT - батник который считает файлы | LeonanVasia | Скриптовые языки администрирования Windows | 1 | 28-09-2009 05:55 | |
CMD/BAT - Как из бат-файла проверить наличие файла по ссылке, не скачивая файл ? | mitiya | Скриптовые языки администрирования Windows | 2 | 27-06-2008 20:50 |
|