Показать полную графическую версию : [решено] 7zip консольное добавление в архив с заменой
Всем доброго времени суток!
Пытаюсь сделать следующее: Добавить в существующий архив файлы\каталоги по списку
но дело в том что ошибка "Duplicate filename"
нагуглил опцию -u и родилась такая команда 7z a TEST.zip @list.txt -ur2x2y2z2w2
но все-равно выдает ошибку о дубликате...
в GUI версии мы просто нажимаем ОК для подтверждения добавления и замены но в консольном варианте что-то не выходит.
Помогите))
А если не гуглить, а просто прочитать справку 7-Zip по этому параметру? И почему бы Вам просто не использовать команду «u»:
u (Update) command
Update older files in the archive and add files that are not already in the archive.
вместо параметра «-u»?
Iska, я нагуглил русскую справку от многоуважаемого Gora и предложенный вами не работает(Duplicate filename) или я что-то делаю не так:
вот так пробовал
7z u TEST.zip @list.txt
7z u TEST.zip @list.txt -ur2x2y2z2w2
7z u TEST.zip @list.txt -ur2x1y2z1w2
в справке написано что если не указывается второй архив то пакуется в тот-же.
ошибка "Duplicate filename" »
Подобная ошибка возникает, если в файле list.txt имеются повторяющиеся строки (указывающие на один и тот же файл\папку).
gora, так оно и есть. Мне нужно объединить(слияние) несколько папок с одинаковыми названиями (и структура повторяется). Только файлы разные.
nfs911, Вы чего-то не договариваете.
Упакуйте Ваш «list.txt» в архив, приложите к сообщению, либо выложите на RGhost.
Опишите словами, какую Вы поставили себе задачу (без упоминания 7-Zip и «добавление/обновление архива»).
Iska, идея проста...см.пример.
Задача: собрать архив из разных источников файлов с идентичной структурой.
Представьте что папки это структура,а файлы это детали. Продукт один,а детали разные.
Iska, идея проста... »
Ну, так озвучьте её. Ибо мне она совершенно неизвестна.
Iska, пример приложил. Задачу озвучил.
nfs911, Вы хотите получить в итоговом архиве такую:
\
│ FileX.txt
│
└───SubDir0
│ FileY.txt
│
└───SSDir0
FileZ.txt
структуру?
пример приложил. Задачу озвучил. »
Боюсь, что 7-Zip не сможет выполнить Вашу задачу.
Либо пакуйте с родительскими папками:.\Dir0
.\Dir1
.\Dir2
Либо объединяйте Ваши папки батником и результат упаковывайте, не перекладывая объединение на архиватор.
Мне нужно объединить(слияние) несколько папок с одинаковыми названиями (и структура повторяется). Только файлы разные. »
@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
Да, 7-Zip этого пока не умеет, в отличие от WinRAR (параметр «-EP1» — исключить базовую папку из имён). Потому, либо, как Вы озвучили:
Либо объединяйте Ваши папки батником и результат упаковывайте, не перекладывая объединение на архиватор. »
либо N вызовами архиватора по числу путей, как у коллеги Georgio (либо с переходами в папки/возвращениями).
Georgio, напомните, почему было выбрано именно «<list.txt (for /f … ('more')» вместо простого «for /f … ("list.txt")»?
Iska, Georgio, gora, Всех благодарю за участие. Буду юзать WinRAR или как было - множественный вызов.
Georgio, действительно,почему?)))
Georgio, напомните, почему было выбрано именно «<list.txt (for /f … ('more')» вместо простого «for /f … ("list.txt")»? »
Georgio, действительно,почему?))) »
Такое использование команды "MORE" (или иногда и других команд, поддерживающих синтаксические конструкции типа "<файл команда" или "команда 1| команда 2") является необходимым элементом для создания, как я это называю, "блочно-конвейерной" структуры кода, которая может быть иногда крайне удобной и делает язык Batch настоящим языком программирования.
Например, можно испрльзовать такую "конвейерную цепочку": <"исходный файл" (for /f ... %%i in ('more') do @7z ...)| (for /f ... %%i in ('more') do @какая-нибудь команда для обработки текста вывода команды "7z")>"выходной файл".
Какой скриптовый язык напоминает вам этот пример?
Какой скриптовый язык напоминает вам этот пример? »BASH чтоли?))
nfs911, Bash напоминает, но поскольку я имел в виду скриптовые языки Windows, то этот пример напоминает конструкцию на PowerShell.
Конечно, такие "конвейерные построения" могут наталкиваться на "подводные камни", но большинство из этих "камней" устранимо при решении какой-нибудь конкретной задачи.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.