Форум программистов, компьютерный форум, киберфорум
Наши страницы
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.78/46: Рейтинг темы: голосов - 46, средняя оценка - 4.78
Haklag
34 / 34 / 37
Регистрация: 21.06.2012
Сообщений: 150
Завершенные тесты: 2
1

Добавление папки в ZIP-архив

21.06.2012, 15:38. Просмотров 8833. Ответов 5
Метки нет (Все метки)

Как добавить папку (все файлы и подпапки) в zip архив с помощью bat файла.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.06.2012, 15:38
Ответы с готовыми решениями:

Распаковать zip архив в ту же папку
необходимо батником распаковать один zip архив. путь к архиву D:\arhiv.zip распаковать его в ту...

Как с использованием 7-Zip запаковать файлы и каталоги в архив и распаковать их из архива?
Научите меня 7z паковать! Документация выводится в консоль, но всё же пробами и ошибками долго...

Возможно ли с помощью Командной строки распаковать ZIP-архив, используя только ресурсы ОС Windows?
Возможно ли чистой ХП раз-архивировать .ZIP Архив только лишь ресурсами винды? или .cab ... Не...

Как заархивировать содержимое папки в один архив?
for %%a in (*) do "C:\Program Files\WinRAR\WinRAR.exe" a -inul "%%a".zip "%%a" - это мой батник, но...

Как заархивировать папку в архив с именем данной папки?
Нужно что бы имя архива содержало имя архивируемой папки. Есть ресурс на котором создаются...

5
sov44
1760 / 744 / 128
Регистрация: 09.04.2011
Сообщений: 1,314
24.06.2012, 21:10 2
Цитата Сообщение от Haklag Посмотреть сообщение
Как добавить папку (все файлы и подпапки) в zip архив с помощью bat файла.
для 7-zip
Код
@echo off
set a7z=%ProgramFiles%\7-Zip\7z.exe
set otkuda=c:\1
set kuda=c:\2
"%a7z%" a "%kuda%\name.7z" "%otkuda%\*"

Не по теме:

Haklag иногда читайте справки!

2
Dragokas
Эксперт WindowsАвтор FAQ
17058 / 7113 / 861
Регистрация: 25.12.2011
Сообщений: 10,924
Записей в блоге: 16
24.06.2012, 22:36 3
ZIP, который создает Виндовс, на CMD никак (только сторонние архиваторы).

Вот нашел, для развития, так сказать, на VBScript:
Упаковка
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
Function fZip(sSourceFolder,sTargetZIPFile)
'This function will add all of the files in a source folder to a ZIP file
'using Windows' native folder ZIP capability.
'Returns an integer 0 if everything went ok.
Dim oShellApp, oFSO, iErr, sErrSource, sErrDescription
Set oShellApp = CreateObject("Shell.Application")
Set oFSO = CreateObject("Scripting.FileSystemObject")
'The source folder needs to have a \ on the End
If Right(sSourceFolder,1) <> "\" Then sSourceFolder = sSourceFolder & "\"
On Error Resume Next 
'If a target ZIP exists already, delete it
If oFSO.FileExists(sTargetZIPFile) Then oFSO.DeleteFile sTargetZIPFile,True 
iErr = Err.Number
On Error GoTo 0
If iErr <> 0 Then   
    fZip = iErr
    Exit Function
End If
On Error Resume Next
'Write the fileheader for a blank zipfile.
oFSO.OpenTextFile(sTargetZIPFile, 2, True).Write "PK" & Chr(5) & Chr(6) & String(18, Chr(0))
iErr = Err.Number
On Error GoTo 0
If iErr <> 0 Then   
    fZip = iErr
    Exit Function
End If
On Error Resume Next 
'Start copying files into the zip from the source folder.
oShellApp.NameSpace(sTargetZIPFile).CopyHere oShellApp.NameSpace(sSourceFolder).Items
iErr = Err.Number
On Error GoTo 0
If iErr <> 0 Then   
    fZip = iErr
    Exit Function
End If
'Because the copying occurs in a separate process, the script will just continue.  Run a DO...LOOP to prevent the function
'from exiting until the file is finished zipping.
Do Until oShellApp.NameSpace(sTargetZIPFile).Items.Count = oShellApp.NameSpace(sSourceFolder).Items.Count
   WScript.Sleep 500
Loop
fZip = 0
End Function


Распаковка
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Function fUnzip(sZipFile,sTargetFolder)
'Create the Shell.Application object
Dim oShellApp:Set oShellApp = CreateObject("Shell.Application")
'Create the File System object
Dim oFSO:Set oFSO = CreateObject("Scripting.FileSystemObject")
'Create the target folder if it isn't already there
If Not oFSO.FolderExists(sTargetFolder) Then oFSO.CreateFolder sTargetFolder
'Extract the files from the zip into the folder
oShellApp.NameSpace(sTargetFolder).CopyHere oShellApp.NameSpace(sZipFile).Items
'This is a seperate process, so the script would continue even if the unzipping is not done
'To prevent this, we run a DO...LOOP once a second checking to see if the number of files
'in the target folder equals the number of files in the zipfile.  If so, we continue.
Do
    WScript.Sleep 1000
Loop While oFSO.GetFolder(sTargetFolder).Files.Count < oShellApp.NameSpace(sZipFile).Items.Count
End Function
1
Volkov07
3 / 3 / 0
Регистрация: 06.01.2016
Сообщений: 8
12.02.2017, 10:28 4
Dragokas, с zip файлом можно работать через Shell.Application как с обычной папкой. Вот VBScript:
Visual Basic
1
2
3
4
Set ShellApp = CreateObject("Shell.Application")
Set objDestFolder = ShellApp.NameSpace("C:") 'куда распаковать
Set objSrcFolder = ShellApp.NameSpace("C:\MyZIP.zip") 'что распаковать
objDestFolder.CopyHere objSrcFolder.Items 'распаковка архива
0
greg zakharov
Покинул форум
2216 / 885 / 248
Регистрация: 07.05.2015
Сообщений: 1,781
12.02.2017, 12:27 5
Volkov07, zip можно создать\заполнить\распаковать средствами командного языка, без [VB|J]Script или PowerShell, правда в случае заполнения о сжатии можно забыть, так как получить deflate из комстроки без явной гибридизации с WSH пока не удавалось.
0
Dragokas
Эксперт WindowsАвтор FAQ
17058 / 7113 / 861
Регистрация: 25.12.2011
Сообщений: 10,924
Записей в блоге: 16
12.02.2017, 15:43 6
Volkov07, ну... мне через 5 лет уже не надо, да и не я спрашивал, да и код Ваш от моего вообще ничем не отличается.

Добавлено через 2 минуты
P.S. Вот здесь лежит класс: Создание архива (ZIP)
0
12.02.2017, 15:43
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.02.2017, 15:43

Добавление одного и того же файла во множество RAR- и ZIP-архивов
Добрый день. Перерыл пол инета но так и не нашел. Есть задача добавить один файл в десятки тысяч...

Добавление в архив файлов за предыдущий месяц с заданными исключениями
Добрый день. есть большое количество файлов, имя задаётся по виду: 20120701_xxx 20120702_yyy...

Установка пароля на архив и добавление комментария к архиву в процессе архивации
Интересует добавление пароля при архивации и комента к архиву через SET PASSWD=pass не работает...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru