Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Переименовать файл в zip архиве...
Форум на CrossPlatform.RU > Библиотеки > Другие библиотеки
ViGOur
Есть ZIP архивы, примерно за 100 000 штук, в них есть файлы, нужно поменять их названия (тоесть поменять названия файлов в архиве, а не архивов).
Вот и думаю, как бы это сделать совсем на халяву, чтобы долго морочиться не пришлось, так как это разово нужно сделать...

Руками переименовывать не предлагать! :)
kwisp
ViGOur,
что за система? если линь то скриптом замутить можна.
по какому принципу файлы переименовываются?
ViGOur
Винда. :(
Файлы переименовываются по принципу, какое название архива, такое же название файла (разумеется расширения разные).
kwisp
ViGOur,
то есть если в архиве ar.zip файлы
help.html
img.jpg
any.txt
то будет
ar.html
ar.txt
ar.jpg

а если
в архиве ar.zip
help.txt
any.txt
book.txt
???

и под рукой нет линя что ли?
ну что то под такую задачу прогу писать как то не кашерно.
ViGOur
Да там все просто, обычно в архиве один файл, а если не один, то расширения разные.
Линя нет под рукой, так как на работе его не особо жалуют. :(

Под линем как сделать хоть, установлю ради этого или домой сношу... :)))


А то, что ради этого что-то писать не кашерно, это точно!
kwisp
Цитата(ViGOur @ 26.8.2009, 17:08) *
Под линем как сделать хоть,

bash набор операторов for if else + mv
кладешь архивы в один каталог
получаешь список архивов
читаешь ман по зипу как там изменить имя в архиве если нет такого то разархивировать в темп папку изменить имя и заархивировать снова.
в принципе не сложно на вскидку.
как то так.
ViGOur
Ну до этого я и сам дошел, это можно и в винде сделать.
Но это уже получается не совсем на халяву! :)
AD
Цитата(ViGOur @ 26.8.2009, 17:25) *
Ну до этого я и сам дошел, это можно и в винде сделать.
Но это уже получается не совсем на халяву! :)

:) +100! :)

P.S. Простите за оффтоп!
kwisp
ViGOur,
чет ни пойму куда же проще.
:mellow:
ViGOur
Правду говорят, глаза боятся руки делают, оказывается ничего сложного нет, вот что получилось:
echo off
cls
FOR /F "usebackq delims==" %%a IN (`dir /B *.zip`) DO (
    wzunzip -e %%~na.zip .\temp\
    FOR /F "usebackq delims==" %%i IN (`dir /B .\temp`) DO (
        @echo Compress file %%i ...
        move .\temp\%%i .\temp\new_%%~na%%~xi
        wzzip -a -m -ee .\new_%%~na.zip .\temp\new_%%~na%%~xi
    )

)
только работу я проверял на winzip 12.1 с аддином для работы с командной строкой, не знаю будет работать с другой версией или нет.

Всем спасибо, тема закрыта. :)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.