Как архивировать несколько папок с помощью пакетного скрипта - PullRequest
0 голосов
/ 23 апреля 2020

У меня есть сценарий Batch file.

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

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

Ответы [ 3 ]

0 голосов
/ 23 апреля 2020

чек почтовый индекс js .bat . Попробуйте поместить ваши папки в список, как показано в примере ниже (zipjs.bat должен находиться в том же каталоге):

@echo off

set "folders_list=C:\folder1;C:\folder2;C:\folder3"
set "destination=C:\my.zip"

del "%destination%" /Q /F >nul 2>&1

for %%a in ("%folders_list%:;=";"%") do (
  if not exist "%destination%" (
    call zipjs.bat zipItem -source "%%~fa" -destination "%destination%" -force no
  ) else (
    call zipjs.bat addToZip -source  "%%~fa" -destination "%destination%" -force no
  )

)

РЕДАКТИРОВАТЬ. После некоторых разъяснений, сделанных ФП:

@echo off

set "folders_list=C:\folder1;C:\folder2;C:\folder3"
set "destination=C:\my.zip"

del "%destination%" /Q /F >nul 2>&1

for %%a in ("%folders_list%:;=";"%") do (
  if not exist "%destination%" (
    call zipjs.bat zipDirItems -source "%%~fa" -destination "%destination%" -force no
  ) else (
    for %%# in ("%%a\*") do (
       call zipjs.bat addToZip -source  "%%~f#" -destination "%destination%" -force no
    )
  )

)
0 голосов
/ 23 апреля 2020

Если я правильно понимаю вашу проблему, самый простой способ выполнить задачу - сначала войти в каждый каталог, (чтобы сделать его 'текущим') , сжать все в текущем каталоге, (по умолчанию) , затем снова отойдите.

@For /D %%G In (*)Do @PushD "%%G"&&"%ProgramFiles%\7-Zip\7z.exe" a -tzip "..\%%G.zip" -r&PopD
0 голосов
/ 23 апреля 2020

Создайте текстовый файл, скопируйте и вставьте следующее:

START /W powershell Compress-Archive folder-name foldername.zip
START powershell Move-Item -Path "path-of-the-zipped-file" -Destination "path-you-want-the-file-to-be-moved-to"`

Сохранить как zip.bat

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...