Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   bat'ник переноса и разархивирования файлов (http://forum.oszone.net/showthread.php?t=221739)

So Sensually 29-11-2011 10:49 1805530

bat'ник переноса и разархивирования файлов
 
Всем привет. Задача... Есть папка Exchange в которую должны сыпаться обменники из папок "1","2","3"..."20" В эти папки файлы приходят в rar архиве, в Exchange они должны попадать в разархивированном виде с таким же названием файлов.

Т.е. нужен батник который при запуске проверяет конкретную папку например "1" (а лучше сразу несколько папок) и если в ней что то есть, то разархивировать это и кидать в Exchange.

Помогите пожалуйста...

Loran_rus 29-11-2011 12:14 1805589

Код:

for /r %%i in (*.rar) do "C:\Program Files\WinRAR\UnRAR.exe" e  "%%i" "C:\Exchange"
Команду выполнять из самой верхней директории где хранятся папки с архивами
Распаковывает только файлы, если в архиве попадаются папки то файлы из них попадут в C:\Exchange, если нужно сохранить полный пути замените ключ E на Х
Папка C:\Exchange должна существовать по указанному пути
Лучше сразу добавить ключ для действий с одноименными файлами

So Sensually 29-11-2011 13:22 1805636

Спасибо, работает! Но есть очень большое НО!! Из папок не удаляются архивы и при следующем запуске батника он пытается заново их кинуть в экчендж. Что дописать что бы после распаковки и копирования папки отчищались?

PC_Maniac 29-11-2011 14:15 1805671

Можно так:
Код:

del /s "*.rar"

So Sensually 01-12-2011 15:31 1807313

Потестил - не очень все гладко...

Скрипт работает около 40-50 секунд, если обменник загружается в папку в момент работы скрипта, то скрипт его не обрабатывает(поскольку обменник еще не весь загрузился), но удаляет!(((

Iska 01-12-2011 16:32 1807353

So Sensually, навскидку — пусть в момент начала:
Цитата:

Цитата So Sensually
обменник загружается в папку »

первым делом кладётся некий маркерный файл, наличие которого в папке «говорит» основному скрипту о том, что идёт процесс загрузки, и делать пока ничего не надо. После окончания процесса загрузки маркерный файл должен быть удалён загружавшей стороной.


Время: 18:24.

Время: 18:24.
© OSzone.net 2001-