Имя пользователя:
Пароль:
 | Правила  

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

Ответить
Настройки темы
CMD/BAT - [решено] 7zip консольное добавление в архив с заменой

Старожил


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

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


Всем доброго времени суток!
Пытаюсь сделать следующее: Добавить в существующий архив файлы\каталоги по списку
но дело в том что ошибка "Duplicate filename"
нагуглил опцию -u и родилась такая команда 7z a TEST.zip @list.txt -ur2x2y2z2w2
но все-равно выдает ошибку о дубликате...
в GUI версии мы просто нажимаем ОК для подтверждения добавления и замены но в консольном варианте что-то не выходит.
Помогите))

Отправлено: 00:14, 08-01-2016

 

Аватара для gora

Ушёл из жизни


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

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


Цитата nfs911:
пример приложил. Задачу озвучил. »
Боюсь, что 7-Zip не сможет выполнить Вашу задачу.
Либо пакуйте с родительскими папками:
Код: Выделить весь код
.\Dir0
.\Dir1
.\Dir2
Либо объединяйте Ваши папки батником и результат упаковывайте, не перекладывая объединение на архиватор.
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:12, 08-01-2016 | #11



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

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


Ветеран


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

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


Цитата nfs911:
Мне нужно объединить(слияние) несколько папок с одинаковыми названиями (и структура повторяется). Только файлы разные. »


Код: Выделить весь код
@echo off
del /f /q TEST.zip
copy 0.zip TEST.zip
<list.txt (for /f "delims=" %%i in ('more') do 7z u TEST.zip "%%i")
pause
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:16, 08-01-2016 | #12


Ветеран


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

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


Да, 7-Zip этого пока не умеет, в отличие от WinRAR (параметр «-EP1» — исключить базовую папку из имён). Потому, либо, как Вы озвучили:
Цитата gora:
Либо объединяйте Ваши папки батником и результат упаковывайте, не перекладывая объединение на архиватор. »
либо N вызовами архиватора по числу путей, как у коллеги Georgio (либо с переходами в папки/возвращениями).

Georgio, напомните, почему было выбрано именно «<list.txt (for /f … ('more')» вместо простого «for /f … ("list.txt")»?
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:28, 08-01-2016 | #13


Старожил


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

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


Iska, Georgio, gora, Всех благодарю за участие. Буду юзать WinRAR или как было - множественный вызов.
Georgio, действительно,почему?)))

Отправлено: 15:52, 08-01-2016 | #14


Ветеран


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

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


Цитата Iska:
Georgio, напомните, почему было выбрано именно «<list.txt (for /f … ('more')» вместо простого «for /f … ("list.txt")»? »
Цитата nfs911:
Georgio, действительно,почему?))) »


Такое использование команды "MORE" (или иногда и других команд, поддерживающих синтаксические конструкции типа "<файл команда" или "команда 1| команда 2") является необходимым элементом для создания, как я это называю, "блочно-конвейерной" структуры кода, которая может быть иногда крайне удобной и делает язык Batch настоящим языком программирования.

Например, можно испрльзовать такую "конвейерную цепочку":
Код: Выделить весь код
<"исходный файл" (for /f ... %%i in ('more') do @7z ...)| (for /f ... %%i in ('more') do @какая-нибудь команда для обработки текста вывода команды "7z")>"выходной файл"
.

Какой скриптовый язык напоминает вам этот пример?
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:46, 08-01-2016 | #15


Старожил


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

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


Цитата Georgio:
Какой скриптовый язык напоминает вам этот пример? »
BASH чтоли?))

Отправлено: 16:52, 08-01-2016 | #16


Ветеран


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

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


nfs911, Bash напоминает, но поскольку я имел в виду скриптовые языки Windows, то этот пример напоминает конструкцию на PowerShell.

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

Отправлено: 17:11, 08-01-2016 | #17



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Добавление файла в архив Winrar mishamag@vk Скриптовые языки администрирования Windows 1 29-03-2015 18:35
CMD/BAT - завершить корректно консольное приложение Shtazer Скриптовые языки администрирования Windows 4 15-01-2012 16:18
C/C++ - консольное приложение в С.. Viajero Программирование и базы данных 3 25-03-2011 17:44
Открывая 7z архив пишет не удаётся открыть как архив. Можно ли его восстановить? DreDo Хочу все знать 4 01-12-2009 18:54
C/C++ - [решено] Консольное приложение котвася Программирование и базы данных 9 15-10-2009 07:31




 
Переход