Войти

Показать полную графическую версию : Распаковка, обработка файла, запаковка и сортировка


SkyAn
07-05-2012, 17:05
Возникла такая потребность.
Есть пачка архивов в .zip, в каждом архиве есть файлы pdf и wmf. Нужно разархивировать, в pdf вставить текст, wmf конвертировать в pdf и добавить текст, в остальных сделать частичную замену имени файла. После за архивировать и разбросать по папкам.
Я понимаю, что задача не простая. С разбросом по папкам я разобрался, уже написал.
Как понимаю разархивировать будет трудно.
Ну а для манипуляций с файлами понадобится сторонняя программа.

Вот пример того что есть.
архив -
aa#asa#asdasd.zip
в нем -
name-12345.pdf --> добавить текст
name-12345.wmf --> конвертировать в pdf и добавить текст
file-alfa.pdf --> переименовать в name-12345-alfa.pdf
file-beta.pdf --> переименовать в name-12345-beta.pdf
А потом за архивировать в aa#asa#asdasd.zip предварительно убив старый.
Дальше переложить в папку aa/asa.

подскажите как это реализовать кодом, потому что файлов много.

SkyAn
08-05-2012, 13:10
начал разбирать, половину сделал.
Главные проблемы, это преобразование с wmf в pdf и добавление текста в pdf.
Ну и никак не могу получить часть имени архива для названия файлов. То есть, с имени aa#asa#asdasd.zip мне нужно получить asdasd . Длина этого куска не одинаковая.
И еще, как затормозить выполнения скрипта, например пока не выполнится раз архивация?

avolkov2009
08-05-2012, 14:44
Насчет получения имени без расширения, гляньте пример:
@echo off
setlocal
set $FULLNAME=c:\windows\command\format.com
set $SHORTNAME=
call :getname %$FULLNAME%
echo Full name is "%$FULLNAME%"
echo Short name is "%$SHORTNAME%"
endlocal
exit /b

:getname
set $SHORTNAME=%~n1
exit /b

Подробнее про модификаторы я читал здесь (http://www.cyberforum.ru/cmd-bat/thread55211.html)

По поводу подождать, пока отработает архиватор. Вы скорее всего пользуетесь т.н. "гуёвой" версией архиватора, скорее всего, WinRar.exe. Перейдите на использование чего-нибудь консольного (z7a.exe, arj32.exe, rar.exe...). Если не хотите - запускайте процесс архивирования командой START /WAIT {Команда} (Подробнее - "HELP START").

Удачи ;-)




© OSzone.net 2001-2012