it-swarm-vi.tech

Windows có lệnh Zip tích hợp cho dòng lệnh không?

Vì Windows Explorer (vì ít nhất là Windows XP) có một số hỗ trợ cơ bản cho các tệp Zip, nên có vẻ như phải có một dòng lệnh tương đương, nhưng tôi dường như không thể tìm thấy bất kỳ dấu hiệu nào của một.

Windows (XP, Vista, 7, 8, 2003, 2008, 2013) có được cung cấp công cụ Zip dòng lệnh tích hợp hay tôi cần phải sử dụng các công cụ của bên thứ ba?

119
Electrons_Ahoy

Nó không được tích hợp vào Windows, nhưng nó nằm trong Công cụ tài nguyên dưới dạng 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.

Ví dụ:

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

Không phải là tôi biết. Theo như các công cụ của bên thứ ba, 7Zip có giao diện dòng lệnh khá đẹp và nhị phân có thể được phân phối với ứng dụng của bạn trong thư mục của ứng dụng, vì vậy bạn không cần phải dựa vào nó được cài đặt trước.

25
Chris
21
John Rennie

.Net 4.5 có chức năng này được tích hợp và PowerShell có thể được sử dụng. Bạn sẽ cần phải có trên Server 2012, Windows 8 hoặc cài đặt .Net 4.5 theo cách thủ công.

[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

Một giải pháp khác được tìm thấy trên trang web superuser sử dụng đối tượng com gốc của windows trong tệp .bat:

Bạn có thể Zip một tệp từ lệnh Nhắc bằng cách sử dụng khả năng tích hợp sẵn của Windows với các tệp Zip không?

6
Krilivye

Có một lệnh PowerShell đơn giản cho việc này. (PowerShell v5.0 +)

Để Zip:

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

Để giải nén:

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

Nguồn:

Đặc biệt cảm ơn @Ramhound

0
cowlinator