1

Этот пакет отлично работает для создания нескольких архивов в папке, но добавляет корневую папку в архив. Я хотел бы добавить только файлы внутри корня. Вот код, который у меня есть:

for /d %%X in (*) do "C:\Program Files\7-Zip\7z.exe" a "%%X.zip" "%%X"

1 ответ1

1

Вам просто нужно использовать только цикл for, опуская параметр /d и он будет работать так же, как вы описываете создание файла (ов) архива zip и не содержать его родительскую папку.

команды

Примечание. При этом будет добавлен файл архива zip для каждого файла в каталоге, в котором содержится только этот файл.

for %%X in (*) do "C:\Program Files\7-Zip\7z.exe" a "%%~X.zip" "%%~X"

Примечание: это добавит все файлы только в каталоге к одному указанному вами zip-файлу.

for %%X in (*) do "C:\Program Files\7-Zip\7z.exe" a "<MyZipFileName>.zip" "%%~X"

Командное гнездо

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

@ECHO ON

FOR /F "TOKENS=*" %%A in ('DIR /S /B /AD "*"') DO (
  FOR %%B IN (*) DO (
      "C:\Program Files\7-Zip\7z.exe" a "%%~fA.zip" "%%~fA\*")
)
EXIT

Дополнительные ресурсы

  • Для /F
  • FOR /?

        tokens=x,y,m-n  - specifies which tokens from each line are to
                          be passed to the for body for each iteration.
                          This will cause additional variable names to
                          be allocated.  The m-n form is a range,
                          specifying the mth through the nth tokens.  If
                          the last character in the tokens= string is an
                          asterisk, then an additional variable is
                          allocated and receives the remaining text on
                          the line after the last token parsed.
    
  • Dir
  • За
  • команда (Добавить)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .