7zip командная строка, чтобы сжать что-то без префикса каталога

380
videoguy

У нас есть пакетный файл, который использует встроенную функцию zip в Windows 10 для архивирования папок. Это настолько непредсказуемо и терпит неудачу в середине 1-часового пакетного задания, которое требует от нас начать весь процесс заново. Встроенная функция zip для Windows - это не консольное приложение. Он вызывает элементы пользовательского интерфейса и завершается ошибкой, если кто-то не нажимает кнопку Ok.

Итак, я начал играть с 7z. Это портативное приложение без каких-либо зависимостей, и это быстро. У меня есть пакетный файл, в котором текущим рабочим каталогом является c: \ work \ abuild \ job. У него есть подпапка maintool \ vendorA. Я пытаюсь создать zip-файл папки vendorA, передав в качестве параметра c: \ work \ abuild \ job \ maintool \ vendorA. Он создает zip с контентом vendorA, но сохраняет весь путь c: \ work \ abuild \ job \ maintool \ vendorA внутри zip. Когда извлечено, это заканчивает тем, что создало ту структуру папки, которую я не хочу.

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

Я был бы удивлен, если бы я первый столкнулся с этой проблемой. Для этого должно быть решение. Но я не знаю как.

Спасибо за ваши предложения.

0
https://stackoverflow.com/questions/17546016/how-can-you-zip-or-unzip-from-the-script-using-only-windows-built-in-capabiliti Nordlys Jeger 6 лет назад 0
Пожалуйста, прочитайте мой вопрос. Это то, с чего я начал, и не хочу использовать встроенную функцию zip. Я пытаюсь заставить это работать с 7zip. videoguy 6 лет назад 0
Можете ли вы предоставить полную команду, которую запускает ваш пакетный файл? Я не смог повторить это с абсолютным путем. Также попробуйте [это] (https://superuser.com/a/340062/911683). По сути, добавьте звездочку (`*`) в конец пути. ( `C: \ работа \ abuild \ работа \ maintool \ vendorA \ *`) Worthwelle 6 лет назад 2
Спасибо @worthwelle! Это хитрость. После добавления \ * моего абсолютного пути сгенерированный zip начал использовать относительные пути вне абсолютного каталога. videoguy 6 лет назад 0

0 ответов на вопрос

Похожие вопросы