У нас есть пакетный файл, который использует встроенную функцию 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