Возникла такая потребность.
Есть пачка архивов в .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.
подскажите как это реализовать кодом, потому что файлов много.
PowerShell - Распаковка, обработка файла, запаковка и сортировка
-
SkyAn
Re: PowerShell - Распаковка, обработка файла, запаковка и сортировка
начал разбирать, половину сделал.
Главные проблемы, это преобразование с wmf в pdf и добавление текста в pdf.
Ну и никак не могу получить часть имени архива для названия файлов. То есть, с имени aa#asa#asdasd.zip мне нужно получить asdasd . Длина этого куска не одинаковая.
И еще, как затормозить выполнения скрипта, например пока не выполнится раз архивация?
Главные проблемы, это преобразование с wmf в pdf и добавление текста в pdf.
Ну и никак не могу получить часть имени архива для названия файлов. То есть, с имени aa#asa#asdasd.zip мне нужно получить asdasd . Длина этого куска не одинаковая.
И еще, как затормозить выполнения скрипта, например пока не выполнится раз архивация?
-
avolkov2009
Re: PowerShell - Распаковка, обработка файла, запаковка и сортировка
Насчет получения имени без расширения, гляньте пример:
Код:
Подробнее про модификаторы я читал
По поводу подождать, пока отработает архиватор. Вы скорее всего пользуетесь т.н. "гуёвой" версией архиватора, скорее всего, WinRar.exe. Перейдите на использование чего-нибудь консольного (z7a.exe, arj32.exe, rar.exe...). Если не хотите - запускайте процесс архивирования командой
Код:
(Подробнее - "HELP START").
Удачи
Код:
Код: Выделить всё
@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Подробнее про модификаторы я читал
здесь
По поводу подождать, пока отработает архиватор. Вы скорее всего пользуетесь т.н. "гуёвой" версией архиватора, скорее всего, WinRar.exe. Перейдите на использование чего-нибудь консольного (z7a.exe, arj32.exe, rar.exe...). Если не хотите - запускайте процесс архивирования командой
Код:
Код: Выделить всё
START /WAIT {Команда}(Подробнее - "HELP START").
Удачи