it-swarm.cn

Windows是否在命令行中具有内置的Zip命令?

由于Windows资源管理器(至少从Windows XP开始)对Zip文件提供了一些基本支持,因此似乎应该有等效的命令行,但是我似乎找不到任何迹象。

Windows(XP,Vista,7、8、2003、2008、2013)是否附带内置的命令行Zip工具,还是我需要坚持使用第三方工具?

119
Electrons_Ahoy

它不是Windows内置的,而是在 Resource Kit Tools 中以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.

例子:

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

不是我知道的。就第三方工具而言,7Zip具有漂亮的命令行界面,该二进制文件可以随您的应用程序一起分发到应用程序的目录中,因此您不必依赖它的提前安装。

25
Chris
21
John Rennie

.Net 4.5内置了此功能,PowerShell可以利用它。您需要使用Server 2012,Windows 8或手动安装.Net 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)
14
MDMarra

在超级用户站点上找到的另一种解决方案使用.bat文件中的Windows本机com对象:

可以仅使用Windows的内置功能从命令提示符压缩文件吗?

6
Krilivye

为此有一个简单的PowerShell命令。 (PowerShell v5.0 +)

压缩:

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

解压缩:

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

资料来源:

特别感谢@Ramhound

0
cowlinator