Как передать несколько файлов в zip одной командой с помощью 7 zip?

Как передать несколько файлов в zip одной командой с помощью 7 zip?

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

destiny.txt
destiny1.txt
destiny2.txt
destiny3.txt
destiny4.txt
destiny5.txt
destiny6.txt
destiny7.txt

Из которых destiny1.txt, destiny4.txt, destiny6.txt из batch1.

Я использую его 7zipдля архивирования файлов.

Могу ли я передать эти 3 файла за один шаг для создания DestinyTest.zip?

Является ли это возможным?

решение1

Могу ли я передать эти 3 файла за один шаг для создания DestinyTest.zip?

Вы можете использовать версию 7zip для командной строки, которая называется 7z.

Из командной строки:

7z a -tzip DestinyTest.zip destiny1.txt destiny4.txt destiny6.txt
  • a- Добавляет файлы в архив.
  • -tzip- Указывает тип архива (мы создаем zipархив).

дальнейшее чтение

решение2

Если у вас есть файл со списком файлов для создания zip-архива, например

создать список файлов для архивации, по одному на каждой строке. Это @-список, со времен DOS, ряд программ сделает это для каждой строки.

Вы можете создать такой файл с помощью dir /b destin*.* > zipme.lst, а затем удалить строки в редакторе ASCII (Блокноте или Edit).

type zipme.lst destiny1.txt destiny4.txt destiny6.txt 7za a -tzip DestinyTest.zip @zipme.lst

Это найдет zipme.lst и добавит все файлы, перечисленные в нем. Это может быть длиннее командной строки, и у вас есть некоторый контроль над этим.

решение3

У меня была похожая проблема, и я хотел сделать это с помощьюпакетный скрипт. Вот как:

В примере ниже скрипт ищет все файлы .csv, начинающиеся с «cell_cfg» и «slave_cfg», собирает их и архивирует в один файл с именем «cfg.7z», который хранится в подкаталоге с именем «zip»:

@ECHO OFF
setlocal enableDelayedExpansion
mkdir zip
ECHO collecting filenames...
set filenames="C:\Program Files\7-Zip\7z.exe" a -t7z "zip/cfg.7z
FOR %%i IN (cell_cfg*.csv) DO (
    ECHO "%%i" | FIND /I "zip_cfg.bat" 1>NUL) || (
        SET filenames=!filenames!" "%%i
    )
)
FOR %%i IN (slave_cfg*.csv) DO (
    ECHO "%%i" | FIND /I "zip_cfg.bat" 1>NUL) || (
        SET filenames=!filenames!" "%%i
    )
)
set filenames=%filenames%"
%filenames%

(Измените путь к файлу 7z.exe и имена файлов/папок. Если вы хотите .zip вместо .7z, переименуйте строки:

set filenames="C:\Program Files\7-Zip\7z.exe" a -t7z "zip/cfg.7z

в

set filenames="C:\Program Files\7-Zip\7z.exe" a -tzip "zip/cfg.zip

)

Я сохранил его как 'zip_cfg.bat' и поместил его в папку с файлами, которые я хочу заархивировать. Затем я могу вызвать его в командной строке: сначала перейдите в папку с файлами, затем просто вызовите:

zip_cfg.bat

Если вы хотите заархивировать все файлы в папке ("*"), часть 'FIND /I "zip_cfg.bat" 1>NUL' останавливает скрипт от архивирования самого пакетного файла.

Надеюсь, это кому-то поможет... :)

Связанный контент