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

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

Ответить
Настройки темы
CMD/BAT - Перепаковка zip архива с переименованием файла

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


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

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


Изменения
Автор: Павел_Будков@vk
Дата: 02-02-2018
Здравствуйте.

Помогите выполнить такую задачу.

Есть много архивов zip и в каждом всего один файл, но проблема в том, что он без расширения, только имя файла и все.
Нужно перепаковать все архивы с добавлением расширения .doc к файлам в архивах, без изменения имени файла (не обязательное условие), только расширение, и без изменения имени архива.

Как вариант, может проще будет, просто распаковать все файлы, но чтобы каждый файл имел имя своего архива, а потом я просто добавлю расширение к файлам и запакую обратно, каждый в свой архив.

Помогите пожалуйста реализовать.

Спасибо.

Отправлено: 13:44, 02-02-2018

 

Ветеран


Contributor


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

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


Павел_Будков@vk,
Перепаковаваются все архивы в указанной папке. Изменяется указанное расширение файлов на другое.
Код: Выделить весь код
@Echo Off
cls

Set "BoxIn=Z:\Box_In"
Set "ArcType=zip"

Set "InExt="
Set "RenExt=doc"

Set "Arc=C:\Program Files\7-Zip\7z.exe" 

Set "BatTmp=%BoxIn%\%~nx0.tmp"
2>nul Md "%BatTmp%" 

Set "BatBak=%BoxIn%\%~nx0.bak"
2>nul Md "%BatBak%"

>nul 2>&1 Del /Q "%BatTmp%\*.*"
 
Pushd "%BatTmp%"
If Not %ErrorLevel%==0 (Echo "%BatTmp%" &Pause &Exit /B %ErrorLevel%)

FOR %%a IN ("%BoxIn%\*.%ArcType%") DO (
	Echo %%a
	>nul "%Arc%" e "%%a" 
	FOR %%f IN ("*.%InExt%") DO Ren "%%f" "%%~nf.%RenExt%"
	Move /-Y "%%a" "%BatBak%\"
	>nul 2>&1 Del "%%a" 
 	>nul "%Arc%" a -tzip -sdel "%%a"
)
Popd
2>nul Rd "%BatTmp%" /Q /S

Pause
Укажите свой путь вместо моего в
Set "BoxIn=Z:\Box_In"

Используется архиватор 7z.
В красных строках организуется хранение исходных архивов в .bak папке. Если этого не надо, удалите эти строки

У 7z есть ключ переименования файла в архиве. Но надо явным образом указать имя файла. Я не стал с этим связываться, очевидно, это бы работало бысрее

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


Последний раз редактировалось megaloman, 02-02-2018 в 19:09.

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

Отправлено: 18:53, 02-02-2018 | #2



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

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


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


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

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


Спасибо, работает отлично!

Отправлено: 20:36, 02-02-2018 | #3



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
некорректное сохранение zip-архива (?) DimmKo Хочу все знать 10 18-08-2016 09:56
Архиваторы - не открываются изображения из архива *.zip Sirimika Программное обеспечение Windows 4 22-06-2012 09:16
Разное - медленная распаковка ZIP архива & Co. _ib_ Microsoft Windows 2000/XP 8 01-09-2009 04:40
Перепаковка архива SP2.cab и SP3.cab hvintik Автоматическая установка Windows 2000/XP/2003 1 23-06-2008 00:03
Взлом Zip архива Guest Хочу все знать 17 25-01-2004 01:54




 
Переход