Windows command line zip command line

At the time of the Original Question the correct answer should have been use Windows JScript or VBS via command line which at the time such methods could build upto 2 GB zip using ADODB.Stream.writeFile(destination,ZIP_DATA);

enter image description here

for a modernised copy which still works well in Windows 10 see https://github.com/npocmaka/batch.scripts/blob/master/hybrids/jscript/zipjs.bat

The CMD tool for zip handling on newer Windows 10,
and carried over to Win 11 is TAR
,

however it was not «native» command line in Windows 8 or earlier, since that system inbuilt dll feature was there as part of explorer, since I think, at least XP»

see Tar --help

To list use Tar -tf file.zip

To extract use Tar -m -xf file.zip

So the OP wanted save to zip

To compress use Tar -a -cf new.zip files

Other options are available, but I think to work with «nested» archive files requires peeling the levels off.
For a practical use you can extract images and thumbnails or text from zips such as MS DocX, PptX, etc.
enter image description here

Overall it is better to use a universal zip tool such as the prime suggestion 7-Zip utility, but others are popular on windows especially the Grandfather of all Windows variants WinZip (c) 1991 https://www.winzip.com/en/download/winzip/ which has specialist versions such as secured WinZip Courier and WinZip PDF!

Обновлено Обновлено:
Опубликовано Опубликовано:

Что такое 7zip.

Приведенные ниже команды выполняются после перехода в каталог с установленным 7-Zip. Как правило, это:

cd «C:\Program Files\7-Zip»

Архивирование и разархивирование
    Как распаковать
    Как запаковать
Резервное копирование
    Пример cmd-скрипта
    Пример powershell-скрипта
Описание ключей и команд
    Команды
    Ключи
Примеры использования команд
    Исключение файлов и папок
    Архивирование базы 1С

Распаковать и заархивировать

Общий синтаксис:

7z <команда> <ключи> <пути к каталогам и файлам>

Синтаксис для распаковки:

7z <x или e> <архивный файл> -o»<путь, куда распаковываем>»

* ключ x распаковывает с сохранением каталожной структуры; e — все в одно место.

Пример:

7z x c:\temp\archive.7z -o»c:\temp\»

* в данном примере мы распакуем файл c:\temp\archive.7z в папку c:\temp

Архивация

Синтаксис для архивирования:

7z a <ключи> <архивный файл> <объект архивирования>

Например:

7z a -tzip -mx5 -r0 c:\temp\archive.zip c:\temp

* в данном примере мы создадим zip-архив с уровнем компрессии 5; в архив попадет все содержимое всех каталогов; название для файла c:\temp\archive.zip; запаковываем все содержимое папки c:\temp.

7z a -mx1 c:\temp\archive.7z c:\temp\file1.txt c:\temp\file2.txt c:\temp\file3.txt

* в данном примере мы архивируем файлы c:\temp\file1.txt, c:\temp\file2.txt, c:\temp\file3.txt с низкой компрессией 1; в итоге будет получен архив c:\temp\archive.7z.

* описание ключей ниже.

Резервное копирование с помощью 7-Zip

Один из самых распространенных примеров использования 7zip из командной строки — резервирование данных.

Для начала переходим в каталог с установленной программой:

cd «C:\Program Files\7-Zip\»

* так как в пути имеется пробел, его необходимо писать в кавычках.

Сама команда выглядит следующим образом:

7z a -tzip -ssw -mx1 -pPassword -r0 C:\Temp\backup.zip C:\Data

* в данном примере мы архивируем содержимое папки C:\Data и сохраняем в виде файла C:\Temp\backup.zip.
* описание ключей смотрите ниже или командой 7z —help.

Полный пример cmd-скрипта для резервного копирования:

@echo off

set source=»C:\Date»
set destination=»C:\Temp»
set passwd=»Password»
set dd=%DATE:~0,2%
set mm=%DATE:~3,2%
set yyyy=%DATE:~6,4%
set curdate=%dd%-%mm%-%yyyy%

«C:\Program Files\7-Zip\7z.exe» a -tzip -ssw -mx1 -p%passwd% -r0 %destination%\backup_%curdate%.zip %source%

* данный скрипт заархивирует содержимое каталога C:\Data в файл C:\Temp\backup_<текущая дата>.zip. Полученный архив будет защищен паролем Password.
* содержимое необходимо сохранить в файле с расширением .cmd или .bat.

Пример Powershell скрипта для резервного копирования:

$source = «C:\Date»
$destination = «C:\Temp»
$passwd = «Password»
$curdate = (Get-Date -UFormat «%d-%m-%Y»)

& «C:\Program Files\7-Zip\7z.exe» a -tzip -ssw -mx1 -p$passwd -r0 $destination\backup_$curdate.zip $source

* данный скрипт также заархивирует содержимое каталога C:\Data в файл C:\Temp\backup_<текущая дата>.zip. Полученный архив будет защищен паролем Password.
* содержимое необходимо сохранить в файле с расширением .ps1.

Описание ключей и команд 7z

В синтаксисе работы с 7zip идут команды и ключи.

Описание основных команд

Команда Описание
a Добавление файлов в архив. Если архивного файла не существует, создает его.
d Удаление файла из архива
e Извлечение файлов из архива. Все файлы оказываются в одной папке.
l Вывод содержимого архива.
rn Переименовывание файла внутри архива.
u Обновление файлов в архиве. Если файла нет, создает новый.
x Извлечение файлов из архива. Пути сохраняются.

Описание ключей

Часто используемые:

Ключ Описание
-t Тип архива. По умолчанию создаются файлы в формате 7z. Примеры, -tzip, -tgz
-ssw Включить файл в архив, даже если он в данный момент используется. Для резервного копирования очень полезный ключ.
-mx Уровень компрессии. 0 — без компрессии (быстро), 9 — самая большая компрессия (медленно). Например, -mx4
-p Пароль для архива. Например, -pStrong2!3paSsword
-o Задает директорию, например, в которую будут распакованы файлы.
-r Рекурсивное архивирование для папок. Задается числом от 0 (все каталоги) до количества уровней каталогов, которые нужно включить в архив.

Другие полезные ключи:

Ключ Описание
-sdel Удалить файлы после создания архива.
-sfx Создание самораспаковывающегося sfx-архива.
-y Утвердительно ответить на все вопросы, которые может запросить система.
-x Исключить файлы или папки из архива.
-v Позволяет разбить архив на фрагменты. Если указать -v1g, то архив будет разбит на части по 1 Гб.
-mmt Количество потоков процессора, которые можно задействовать для работы программы. -mmt=4 укажет работать в четыре потока.
-m Задает метод сжатия. Доступны варианты:
— LZMA: базовый метод для сжатия 7z. Быстрое сжатие и декомпрессия.
— LZMA2: метод по умолчанию для 7z. Поддерживает несколько процессорных потоков.
— PPMd: метод PPMdH Дмитрия Шкарина с небольшими изменениями. Хорошо подходит для текстовых файлов.
— BZip2: на основе алгоритма BWT. Также хорош для текстовых файлов.
— Deflate: стандартный метод для форматов ZIP и GZip. Сжатие не очень хорошее, но высокая скорость работы. Поддерживает только 32 КБ словаря.
— Deflate64: аналогичен Deflate, но с поддержкой 64 КБ словаря.

Полный список ключей и команд можно получить командой 7z —help.

Примеры

Исключение файлов и папок

Отдельно стоит рассказать про возможность исключения. Есть два варианта ее применения.

Первый — создать список исключений в отдельном файле.

Пример команды 7z:

7z.exe a -tzip -ssw -mx9 -r0 -x@exclus.txt C:\Temp\backup.zip C:\Data

* где exclus.txt — файл с исключениями.

Пример файла с исключениями:

test
*.tmp

* в данном примере мы исключаем каталог с именем test и все файлы с расширением tmp.

Второй — указать исключение в команде.

7z.exe a -tzip -ssw -mx9 -r0 -xr!Шаблон* C:\Temp\backup.zip C:\Data

Резервирование баз 1С

 Данные базы 1С находятся в файлах с расширением .1CD. Для их резервирования используем команду:

7z.exe a -tzip -mmt=2 -ssw -mx5 -r0 C:\Temp\backup.zip D:\Bases_1C\*.1CD

* в данном примере мы будем сжимать все файлы 1CD в архив C:\Temp\backup.zip.

Is it possible to create a .zip file from a folder in the command line, I don’t want to use any third party executable.

I was thinking something like ‘send to compressed folder’ but I don’t know how to do it…

Zombo's user avatar

asked Oct 20, 2010 at 7:50

2

Tar

Windows 10 includes tar.exe:

# example 1
tar.exe -a -c -f out.zip in.txt
# example 2
tar.exe -x -f out.zip

If you have older Windows, you can still download from
libarchive/libarchive.

PowerShell

PowerShell has Compress-Archive:

# example 1
Compress-Archive in.txt out.zip
# example 2
Expand-Archive out.zip

Directory

For both tools, you can use a file or directory for the input.

answered Apr 6, 2015 at 21:26

Zombo's user avatar

9

Imagine that you want to compress the same folder that you are on Command Prompt WITHOUT opening a powershell window:

powershell Compress-Archive . publish.zip

answered Jul 4, 2018 at 11:29

Wagner Bertolini Junior's user avatar

1

I don’t think there is a command line for ZIP files built in to Windows (Other than compress in Server 2003 Resource Kit). You’d have to use a third party. Everybody loves 7zip!

answered Oct 20, 2010 at 7:57

EMMERICH's user avatar

I’ve combined this script from several different sources to suit my needs better. Copy and paste the script into a file with the extension «.vbs». The script was originally made for Windows XP, but it also works in Windows 7 x64 Ultimate — no guarantee’s if Windows will keep around the various Shell objects this uses.

Usage: in the run box or command line put-

"C:\zipper.vbs" "C:\folderToZip\" "C:\mynewzip.zip"

Path to script, source folder, zip file to make (include .zip at the end).

It won’t copy empty folders so be careful.

Here is the vbs code —

Set Args = Wscript.Arguments
source = Args(0)
target = Args(1)

' make sure source folder has \ at end
If Right(source, 1) <> "\" Then
    source = source & "\"
End If

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set zip = objFSO.OpenTextFile(target, 2, vbtrue)
' this is the header to designate a file as a zip
zip.Write "PK" & Chr(5) & Chr(6) & String( 18, Chr(0) )
zip.Close
Set zip = nothing

wscript.sleep 500

Set objApp = CreateObject( "Shell.Application" )
intSkipped = 0

' Loop over items within folder and use CopyHere to put them into the zip folder
For Each objItem in objApp.NameSpace( source ).Items
    If objItem.IsFolder Then
        Set objFolder = objFSO.GetFolder( objItem.Path )
        ' if this folder is empty, then skip it as it can't compress empty folders
        If objFolder.Files.Count + objFolder.SubFolders.Count = 0 Then
            intSkipped = intSkipped + 1
        Else
            objApp.NameSpace( target ).CopyHere objItem
        End If
    Else
        objApp.NameSpace( target ).CopyHere objItem
    End If
Next

intSrcItems = objApp.NameSpace( source ).Items.Count
wscript.sleep 250

' delay until at least items at the top level are available
Do Until objApp.NameSpace( target ).Items.Count + intSkipped = intSrcItems
    wscript.sleep 200
Loop

'cleanup
Set objItem = nothing
Set objFolder = nothing
Set objApp = nothing
Set objFSO = nothing

phuclv's user avatar

phuclv

26.7k15 gold badges115 silver badges235 bronze badges

answered Oct 20, 2010 at 8:32

WSkid's user avatar

WSkidWSkid

1894 bronze badges

3

It is possible to run PowerShell script from BAT. Bat file receive path to dir to be zipped and zip file name as parameters.

@echo off
setlocal

rem First parameter - path to dir to be zipped
rem Second parameter- zip file name
set sourceDir=%1
set zipFile=%2

rem Create PowerShell script
echo Write-Output 'Custom PowerShell profile in effect!'    > %~dp0TempZipScript.ps1
echo Add-Type -A System.IO.Compression.FileSystem           >> %~dp0TempZipScript.ps1
echo [IO.Compression.ZipFile]::CreateFromDirectory('%sourceDir%','%~dp0%zipFile%') >> %~dp0TempZipScript.ps1

rem Execute script with flag "-ExecutionPolicy Bypass" to get around ExecutionPolicy
PowerShell.exe -ExecutionPolicy Bypass -Command "& '%~dp0TempZipScript.ps1'"
del %~dp0TempZipScript.ps1
endlocal

answered Nov 30, 2016 at 12:19

cam029's user avatar

4

To compress file from CMD:

compact /c /exe lzx input.txt

(works on NTFS Volumes)
File size after compression still displays same on CLI dir or GUI File Properties, but disk space occupied is (6-8 times) less.
Binary compressed files won’t make much difference.

For ZIP file format from PKWare, compression rate is about 4 times higher than compact (from testing on Win 10) and incorporates a range of compression algorithms such as Deflate, BZip, LZW, LZMA, LZ77, PPMd, etc

These technologies are newer than the days of DOS & CMD, and but still can be accessed via newer CLI tools like Powershell, JScript, VBScript, etc.

For powershell from Win CMD:

powershell "Compress-Archive input.txt output.zip"

or tar in Windows 10:

Usage:
  List:    tar -tf <archive-filename>
  Extract: tar -xf <archive-filename>
  Create:  tar -cf <archive-filename> [filenames...]
  Help:    tar --help

answered Mar 17, 2020 at 7:30

Zimba's user avatar

ZimbaZimba

1,06111 silver badges15 bronze badges

I will post something related to WSkids answer as sadly i cannot use the comment function.

Using the CopyHere() method in VBS introduces several issues. One of these issues is that the method returns immediately while the copy process starts in background whereas multiple CopyHere() calls will interfere each other and the ZIP won’t be created correctly. A wait loop is needed here to fix that. My wait loop is based on an answer to a similar issue posted here.

Here is an updated version which fixes the «Object required» error reported by pihentagy. It’s a timing issue as the newly created ZIP file is included in the Items collection when the script is executed on fast machines.

set Args = WScript.Arguments
source = Args(0)
' remove trailing slashes as we add slashes when needed later
while Right(source, 1) = "\"
    source = Mid(source, 1, Len(source) - 1)
wend

target = Args(1)

' create empty ZIP file
set fso = CreateObject("Scripting.FileSystemObject")
set zip = fso.OpenTextFile(target, 2, vbtrue)
' write ZIP header, this ensures that Windows recognizes the file as "ZIP Folder"
zip.Write "PK" & Chr(5) & Chr(6) & String(18, Chr(0))
zip.Close
set zip = nothing
set fso = nothing

' copy files to ZIP file
set app = CreateObject("Shell.Application")

set sourceFolderObj = app.NameSpace(source)
set targetFolderObj = app.NameSpace(target)

for each item in sourceFolderObj.Items
  itemPath = source & "\" & item.Name
  
  copyItem = false
  
  ' ZIP file is included in Items collection and is recognized as folder, thus skip it to avoid script errors
  if itemPath <> target then
    if item.IsFolder then
      if item.GetFolder.Items().Count = 0 then
        ' folder is empty, skip it as empty folders can't be compressed
      else
        copyItem = true
      end if
    else
      copyItem = true
    end if
  end if
  
  if copyItem then
    targetFolderObj.CopyHere item
    
    ' wait until the file appears in the ZIP file, 
    ' this is needed because CopyHere() returns immediately after starting an asynchronous copy process 
    ' (starting multiple asynchronous copy will not work as it causes error messages, an invalid ZIP file, ...)
    while (targetFolderObj.ParseName(item.Name) is nothing)
      WScript.Sleep 1
    wend
  end If
next

set targetFolderObj = nothing
set sourceFolderObj = nothing
set app = nothing

phuclv's user avatar

phuclv

26.7k15 gold badges115 silver badges235 bronze badges

answered Jan 7, 2015 at 14:22

ViRuSTriNiTy's user avatar

1

Here is another idea, from 4 different sources; not my ideas, but I compiled them to make it work for me

<!-- : Begin batch script
@each off

set sourceFolder="c:\test"
set destZip="%userprofile%\desktop\example.zip"

cscript //nologo "%~f0?.wsf" //job:exewsh %sourceFolder% %destZip%

exit /b
GOTO:EOF
----- Begin wsf script --->
<package><job id="exewsh"><script language="VBScript">
'Get command-line arguments.
Set objArgs = WScript.Arguments
InputFolder = objArgs(0)
ZipFile = objArgs(1)

'Create empty ZIP file.
CreateObject("Scripting.FileSystemObject").CreateTextFile(ZipFile, True).Write "PK" & Chr(5) & Chr(6) & String(18, vbNullChar)

Set objShell = CreateObject("Shell.Application")
Set source = objShell.NameSpace(InputFolder).Items
objShell.NameSpace(ZipFile).CopyHere(source)

'Required!
wScript.Sleep 2000
</script></job>
</package>

phuclv's user avatar

phuclv

26.7k15 gold badges115 silver badges235 bronze badges

answered Jan 18, 2018 at 22:50

eyeH8bingDotCom's user avatar

2

This is an old question, but it’s relevance is still current.

Windows of course has it’s own compression algorithm built in for using zip files, but, it really performs poorly when compared to the 7zip open source product found here http://www.7-zip.org/

Others have already discussed various methods for using the built in windows functions, my solution requires installing the additional software.

7Zip supports a wide range of files, including ZIP, RAR, CAB and ISO and it’s own 7z format.

You can view the command line help:

"C:\Program Files\7-Zip\7z.exe" --help

to perform a simple add to zip archive:

"C:\Program Files\7-Zip\7z.exe" a filename.zip c:\path 

phuclv's user avatar

phuclv

26.7k15 gold badges115 silver badges235 bronze badges

answered Aug 16, 2017 at 6:41

Dwight Wilbanks's user avatar

KyleMit's user avatar

KyleMit

6,0748 gold badges46 silver badges61 bronze badges

answered Jan 22, 2015 at 12:27

npocmaka's user avatar

npocmakanpocmaka

1,25912 silver badges12 bronze badges

4

This is on Windows Server 2019 Datacenter. In the end, the undocumented «-a» option suggested by @Zombo is required to create ZIP compatible files.

> tar --help

tar(bsdtar): manipulate archive files

First option must be a mode specifier:
  -c Create  -r Add/Replace  -t List  -u Update  -x Extract
Common Options:
  -b #  Use # 512-byte records per I/O block
  -f <filename>  Location of archive (default \\.\tape0)
  -v    Verbose
  -w    Interactive
Create: tar -c [options] [<file> | <dir> | @<archive> | -C <dir> ]
  <file>, <dir>  add these items to archive
  -z, -j, -J, --lzma  Compress archive with gzip/bzip2/xz/lzma
  --format {ustar|pax|cpio|shar}  Select archive format
  --exclude <pattern>  Skip files that match pattern
  -C <dir>  Change to <dir> before processing remaining files
  @<archive>  Add entries from <archive> to output
List: tar -t [options] [<patterns>]
  <patterns>  If specified, list only entries that match
Extract: tar -x [options] [<patterns>]
  <patterns>  If specified, extract only entries that match
  -k    Keep (don't overwrite) existing files
  -m    Don't restore modification times
  -O    Write entries to stdout, don't restore to disk
  -p    Restore permissions (including ACLs, owner, file flags)
bsdtar 3.5.2 - libarchive 3.5.2 zlib/1.2.5.f-ipp

Try the documented compression and format options

>tar -c -z --format ustar -f Test1.z.ustar.zip  tar_filelist.txt              creates a file that Windows Explorer can't open.

>tar -c -j --format ustar -f Test2.j.ustar.zip  tar_filelist.txt              creates a 0 byte file that Windows Explorer CAN open.  Shows as empty.
tar: Can't launch external program: bzip2

>tar -c -J --format ustar -f Test3.J.ustar.zip  tar_filelist.txt              errors out.  does nothing.
tar: Unsupported compression option --xz

>tar -c --lzma --format ustar -f Test4.lzma.ustar.zip  tar_filelist.txt       errors out.  does nothing.
tar: Unsupported compression option --lzma

>tar -c -z --format pax -f Test5.z.pax.zip  tar_filelist.txt                  creates a file that Windows Explorer can't open.

>tar -c -j --format pax -f Test6.j.pax.zip  tar_filelist.txt                  creates a 0 byte file that Windows Explorer CAN open.  Shows as empty.
tar: Can't launch external program: bzip2

>tar -c -J --format pax -f Test7.J.pax.zip  tar_filelist.txt                  errors out.  does nothing.
tar: Unsupported compression option --xz

>tar -c --lzma --format pax -f Test8.lzma.pax.zip  tar_filelist.txt           errors out.  does nothing.
tar: Unsupported compression option --lzma

>tar -c -z --format cpio -f Test9.z.cpio.zip  tar_filelist.txt                creates a file that Windows Explorer can't open.

>tar -c -j --format cpio -f Test10.j.cpio.zip  tar_filelist.txt               creates a 0 byte file that Windows Explorer CAN open.  Shows as empty.
tar: Can't launch external program: bzip2

>tar -c -J --format cpio -f Test11.J.cpio.zip  tar_filelist.txt               errors out.  does nothing.
tar: Unsupported compression option --xz

>tar -c --lzma --format cpio -f Test12.lzma.cpio.zip  tar_filelist.txt        errors out.  does nothing.
tar: Unsupported compression option --lzma

>tar -c -z --format shar -f Test13.z.shar.zip  tar_filelist.txt               creates a file that Windows Explorer can't open.

>tar -c -j --format shar -f Test14.j.shar.zip  tar_filelist.txt               creates a 0 byte file that Windows Explorer CAN open.  Shows as empty.
tar: Can't launch external program: bzip2

>tar -c -J --format shar -f Test15.J.shar.zip  tar_filelist.txt               errors out.  does nothing.
tar: Unsupported compression option --xz

>tar -c --lzma --format shar -f Test16.lzma.shar.zip  tar_filelist.txt        errors out.  does nothing.
tar: Unsupported compression option --lzma


## Results of the commands above
## The "z" option creates a file that Windows Explorer can't open.
## The "j" option creates a 0 byte file that Windows Explorer CAN open.  Shows as empty.

08/22/2023  07:30 PM               107 Test1.z.ustar.zip
08/22/2023  07:32 PM                 0 Test2.j.ustar.zip

08/22/2023  07:34 PM               211 Test5.z.pax.zip
08/22/2023  07:36 PM                 0 Test6.j.pax.zip

08/22/2023  07:37 PM               102 Test9.z.cpio.zip
08/22/2023  07:38 PM                 0 Test10.j.cpio.zip

08/22/2023  07:39 PM               128 Test13.z.shar.zip
08/22/2023  07:39 PM                 0 Test14.j.shar.zip

answered Aug 23 at 0:37

mnemotronic's user avatar

mnemotronicmnemotronic

3833 silver badges7 bronze badges

You must log in to answer this question.

Since Windows Explorer (since at least Windows XP) has some basic support for ZIP files, it seems like there should be a command-line equivalent, but I can’t seem to find any sign of one.

Does Windows (XP, Vista, 7, 8, 2003, 2008, 2013) ship with a built-in command-line zip tool, or do I need to stick with third-party tools?

asked Jul 10, 2009 at 18:30

Electrons_Ahoy's user avatar

Electrons_AhoyElectrons_Ahoy

1,8213 gold badges15 silver badges16 bronze badges

7

It’s not built into Windows, but it’s in the Resource Kit Tools as COMPRESS,

C:\>compress /?

Syntax:

COMPRESS [-R] [-D] [-S] [ -Z | -ZX ] Source Destination
COMPRESS -R [-D] [-S] [ -Z | -ZX ] Source [Destination]

Description:
Compresses one or more files.

Parameter List:
-R Rename compressed files.

-D Update compressed files only if out of date.

-S Suppress copyright information.

-ZX LZX compression. This is default compression.

-Z MS-ZIP compression.

Source Source file specification. Wildcards may be
used.

Destination Destination file | path specification.
Destination may be a directory. If Source is
multiple files and -r is not specified,
Destination must be a directory.

Examples:

COMPRESS temp.txt compressed.txt
COMPRESS -R *.*
COMPRESS -R *.exe *.dll compressed_dir

Peter Mortensen's user avatar

answered Jul 10, 2009 at 18:37

Bryan's user avatar

BryanBryan

7,62815 gold badges69 silver badges94 bronze badges

6

Not that I’m aware of. As far as third party tools goes, 7zip has a pretty nice command line interface and the binary can be distributed with your app in the app’s directory, so you don’t have to rely on it being installed ahead of time.

answered Jul 10, 2009 at 18:33

Chris's user avatar

ChrisChris

8691 gold badge7 silver badges13 bronze badges

5

Community's user avatar

answered Jul 11, 2009 at 8:29

John Rennie's user avatar

John RennieJohn Rennie

7,7761 gold badge24 silver badges35 bronze badges

4

.Net 4.5 has this functionality built in, and it can be leveraged by PowerShell. You’ll need to be on Server 2012, Windows 8, or have .Net 4.5 installed manually.

[Reflection.Assembly]::LoadWithPartialName("System.IO.Compression.FileSystem")
$Compression = [System.IO.Compression.CompressionLevel]::Optimal
$IncludeBaseDirectory = $false

$Source = "C:\Path\To\Source"
$Destination = "C:\CoolPowerShellZipFile.zip"

[System.IO.Compression.ZipFile]::CreateFromDirectory($Source,$Destination,$Compression,$IncludeBaseDirectory)

answered Feb 25, 2013 at 19:50

MDMarra's user avatar

MDMarraMDMarra

101k32 gold badges197 silver badges329 bronze badges

answered Nov 21, 2020 at 3:25

KyleMit's user avatar

KyleMitKyleMit

4884 gold badges9 silver badges22 bronze badges

1

Community's user avatar

answered Feb 3, 2012 at 14:26

Krilivye's user avatar

KrilivyeKrilivye

1691 silver badge1 bronze badge

There is a single, simple PowerShell command for this. (PowerShell v5.0+)

To zip:

Compress-Archive -LiteralPath 'C:\mypath\testfile.txt' -DestinationPath "C:\mypath\Test.zip"

To unzip:

Expand-Archive -LiteralPath "C:\mypath\Test.Zip" -DestinationPath "C:\mypath" -Force

Sources:

  • Compress-Archive

  • Expand-Archive

Special thanks to @Ramhound

answered Apr 27, 2019 at 0:23

cowlinator's user avatar

cowlinatorcowlinator

1781 silver badge6 bronze badges

1

You must log in to answer this question.

Not the answer you’re looking for? Browse other questions tagged

.

Содержание

  1. Введение
  2. Создание архива
  3. Добавление файлов в архив
  4. Распаковка архива
  5. Список файлов в архиве
  6. Установка пароля для архива
  7. Итоги
  8. Windows command line zip: как работать с архиватором командной строки

Введение

Архивация и сжатие файлов являются важной частью работы с данными на компьютере. В Windows командная строка предоставляет удобный способ архивировать и распаковывать файлы с помощью утилиты zip. В этом руководстве мы рассмотрим основные команды и синтаксис для работы с zip-архивами в командной строке Windows.

Создание архива

Для создания zip-архива в командной строке Windows используйте следующую команду:

zip -r [архив.zip] [папка]

Здесь ключ -r указывает на рекурсивное копирование файлов внутри папки, чтобы в архив попали все файлы и подпапки. [архив.zip] — это имя, которое вы хотите дать архиву, и [папка] — путь к папке, которую вы хотите архивировать.

Добавление файлов в архив

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

zip -u [архив.zip] [файл1] [файл2]...

Здесь ключ -u указывает на обновление архива, и [архив.zip] — имя архива, в который вы хотите добавить файлы.

Распаковка архива

Для распаковки zip-архива в командной строке Windows используйте следующую команду:

unzip [архив.zip] [папка]

Здесь [архив.zip] — это имя архива, который вы хотите распаковать, и [папка] — путь к папке, в которую нужно распаковать архив.

Список файлов в архиве

Для просмотра списка файлов, содержащихся в архиве, используйте следующую команду:

unzip -l [архив.zip]

Здесь ключ -l указывает на вывод списка файлов, [архив.zip] — имя архива, для которого вы хотите увидеть список файлов.

Установка пароля для архива

Если вы хотите защитить свой архив паролем, используйте следующую команду:

zip -r -e [архив.zip] [папка]

Здесь ключ -e указывает на зашифрование архива, и после запуска команды вас попросят ввести пароль для архива. [архив.zip] — это имя архива, который вы хотите зашифровать.

Итоги

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

Windows command line zip: как работать с архиватором командной строки

Архиватор командной строки в операционной системе Windows предоставляет удобные инструменты для создания и управления архивами напрямую через командную строку.

Вот некоторые основные команды и функции, которые вы можете использовать с архиватором командной строки:

  1. zip: команда zip используется для создания нового архива. Вы можете указать имя архива и список файлов, которые вы хотите добавить в архив. Например, zip archive.zip file1.txt file2.txt создаст архив с именем archive.zip, который содержит файлы file1.txt и file2.txt.
  2. unzip: команда unzip используется для извлечения файлов из архива. Вы можете указать имя архива и список файлов, которые вы хотите извлечь. Например, unzip archive.zip file1.txt извлечет только файл file1.txt из архива archive.zip.
  3. zipinfo: команда zipinfo позволяет просматривать информацию о содержимом архива. Вы можете использовать эту команду, чтобы узнать список файлов в архиве, а также другую полезную информацию, такую как размеры и даты файлов. Например, zipinfo archive.zip отобразит информацию о содержимом архива archive.zip.
  4. zipcloak: команда zipcloak используется для добавления пароля к архиву. Вы можете указать имя архива и пароль, который вы хотите установить. Например, zipcloak archive.zip -p password добавит пароль «password» к архиву archive.zip.
  5. zipnote: команда zipnote позволяет редактировать комментарии архива. Вы можете использовать эту команду, чтобы добавить, изменить или удалить комментарии в архиве. Например, zipnote archive.zip откроет текстовый редактор, где вы сможете внести изменения в комментарии архива archive.zip.

Это лишь несколько примеров команд и функций, доступных в архиваторе командной строки в Windows. Вы также можете использовать ключи команды для дополнительной настройки процессов архивирования и извлечения файлов. Подробную информацию о доступных командах и ключах можно получить, выполнив команду zip -h или unzip -h в командной строке.

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

  • Windows command line open file
  • Windows command line windows update
  • Windows command line start command
  • Windows command line ssh client
  • Windows command line new line