С помощью Проводника Windows (начиная по крайней мере с Windows ХР) есть какая-то базовая поддержка zip-файлов, кажется, что там должен быть эквивалент командной строки, но я могу'т показаться, чтобы найти любой знак один.
Есть ли в Windows (ХР, Vista, 7, 8, 2003, 2008, 2013) корабль со встроенной командной строки инструмент zip, или мне нужно придерживаться сторонние средства?
Это's не встроено в систему Windows, но это's в набор ресурсов как "сжать",
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.
Примеры:
COMPRESS temp.txt compressed.txt
COMPRESS -R *.*
COMPRESS -R *.exe *.dll compressed_dir
Не то, что я'м курсе. Насколько сторонних утилит уходит, в 7-Zip имеет довольно приятный интерфейс командной строки и двоичные могут быть распределены с вашего приложения в App's в каталоге, так что вы Дон'т придется полагаться на него могут быть установлены заранее.
Использование PowerShell. См.:
Сжатие файлов с помощью Windows PowerShell затем пакет боковой панели Windows Vista с Gadget
.Объем 4.5 эта функциональность встроена, и она может быть использована в PowerShell. Вы'll необходимо, чтобы быть в Server 2012, Windows 8 или нет .Нетто 4.5 установлен вручную.
[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)
Другое решение нашли на сайте суперпользователя использовать собственный объект COM для Windows на .bat файл:
Можно зип файл из командной строки, используя только Windows' встроенный в zip files?
Есть один простой команды для этого в PowerShell. (PowerShell для У5.0+)
В zip:
Compress-Archive -LiteralPath 'C:\mypath\testfile.txt' -DestinationPath "C:\mypath\Test.zip"
Для распаковки:
Expand-Archive -LiteralPath "C:\mypath\Test.Zip" -DestinationPath "C:\mypath" -Force
Источники:
Особая благодарность @Ramhound