Командная строка утилита архивации для Windows

Вопрос или проблема

В настоящее время я использую утилиту для архивирования в командной строке для создания ZIP-архива.

Мне нужно создать специфическую структуру папок внутри архивного файла, чтобы при извлечении все данные находились в правильной структуре.

В данный момент, чтобы получить правильную структуру, я использую robocopy для копирования всех данных из разных мест в свою предпочтительную структуру папок, а после этого я использую утилиту архивирования для создания архива.

Размер данных становится довольно большим, поэтому я хотел бы пропустить часть с robocopy и добавить данные напрямую в архив.

Кто-нибудь знает утилиту архивирования на основе командной строки, которая позволяет указывать папку внутри архива?

Например, копия из местоположения может быть c:\folder1\folder2\folder3*.* и c:\somewhereelse\folder2\folder3*.*, я хочу, чтобы это попало в одну папку внутри ZIP-файла под названием ‘contents’.

Таким образом, когда архив будет извлечён, все файлы будут извлечены в папку под названием ‘contents’, относительно того, куда бы он ни был извлечён.

PS – должно работать в Windows CMD.

7z не позволяет этого сделать напрямую, но позволяет переименовывать файлы внутри архива, что может быть возможным обходным решением. См. этот ответ.

7z rn <имя_архива> <исходный_файл_1> <файл_назначения_1> [ <исходный_файл_2> <файл_назначения_2> ... ]

Ответ или решение

Архивирование файлов в командной строке Windows: Идеальное решение для создания структурированных архивов

При работе с большими объемами данных архивирование становится важным инструментом для эффективного управления и хранения информации. Если вы используете командную строку Windows для создания архивов, вам может понадобиться способ организовать папки и файлы внутри архивов таким образом, чтобы они имели правильную структуру при извлечении. Рассмотрим решение этой задачи с помощью утилиты 7-Zip.

Задача

Ваша задача заключается в том, чтобы создать архив, содержащий файлы из различных источников, в единую папку внутри архива под названием "contents". Например, если ваши файлы находятся по следующим путям:

  • C:\folder1\folder2\folder3\*.*
  • C:\somewhereelse\folder2\folder3\*.*

Вы хотите, чтобы эти файлы автоматически помещались в архив в структуру:

archive.zip
└── contents
    ├── file1
    ├── file2
    └── file3

При этом вы хотите избежать лишнего шага с помощью использования утилиты robocopy для предварительной подготовки структуры папок.

Решение с помощью 7-Zip

7-Zip предоставляет мощные возможности командной строки, включая возможность переименования файлов внутри архива. Хотя утилита не поддерживает возможность прямого указания папок в командной строке при добавлении файлов, мы можем использовать ее функционал для переименования файлов после того, как они будут добавлены в архив.

Вот шаги, которые вы можете предпринять:

  1. Установите 7-Zip (если он еще не установлен) и добавьте его в переменную PATH для удобства использования в командной строке.

  2. Создайте архив и добавьте файлы:

7z a archive.zip "C:\folder1\folder2\folder3\*.*" "C:\somewhereelse\folder2\folder3\*.*"
  1. Переименуйте файлы внутри архива для их перемещения в папку "contents":
7z rn archive.zip "folder3\*.*" "contents\*"

Обратите внимание, что если в «folder3» находятся подкаталоги, это потребует дополнительной обработки, например, перебора всех подкаталогов вручную.

Преимущества данного подхода

  • Избежание предварительного копирования: Вы экономите время и ресурсы, избегая этапа с robocopy.
  • Гибкость: Легко можно изменить структуру архивируемых данных, просто изменив команду для добавления.
  • Широкая поддержка форматов: 7-Zip поддерживает не только ZIP, но и множество других форматов архивов.

Заключение

Использование командной строки для архивирования может значительно упростить процесс управления данными. Интеграция утилиты 7-Zip позволяет создать структурированные архивы без лишних шагов, что особенно важно при работе с большими объемами информации. Этот метод не только ускоряет процесс архивирования, но и обеспечивает сохранение нужной структуры папок при извлечении файлов.

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

Оцените материал
Добавить комментарий

Капча загружается...