O Windows possui um comando ZIP interno para a linha de comando?

119

Como o Windows Explorer (desde pelo menos o Windows XP) tem algum suporte básico para arquivos ZIP, parece que deve haver um equivalente na linha de comando, mas não consigo encontrar nenhum sinal de um.

O Windows (XP, Vista, 7, 8, 2003, 2008, 2013) é fornecido com uma ferramenta zip de linha de comando integrada ou preciso usar ferramentas de terceiros?

Electrons_Ahoy
fonte
5
Não sei ao certo por que essa pergunta está encerrada. Isso ocorre com freqüência na forma de "Como compactar meus logs?", Que é definitivamente "Operações, manutenção e monitoramento". A questão poderia ser reformulada para ser mais estreita, suponho, mas as soluções são gerais.
Alficles
3
Não sei por que este está fechado como o primeiro hit no Google por "windows 2008 zip"
AlSki
2
^ Sinto-me da mesma maneira (claramente), especialmente considerando a resposta aceita.
Electrons_Ahoy
1
No Windows 7, você também pode usarcompact
jyz
Utilitários

Respostas:

56

Ele não está embutido no Windows, mas está nas Ferramentas do Kit de Recursos como 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.

Exemplos:

COMPRESS temp.txt compressed.txt
COMPRESS -R *.*
COMPRESS -R *.exe *.dll compressed_dir
Bryan
fonte
1
Link errado! Os links corretos são: microsoft.com/downloads/…
Lars Fastrup
1
Isso também pode ser usado no Windows Server 2008?
Max
7
Isso está muito longe de um cliente ZIP utilizável. Você não pode compactar pastas e parece não haver maneira de adicionar arquivos compactados a um arquivo existente. Evitar.
precisa saber é o seguinte
Mais alguém recebe "A pasta compactada (compactada) é inválida ou corrompida" quando você clica duas vezes no arquivo compactado com este método?
Luke Sampson
4
O Compress não é realmente um cliente ZIP. Ele cria os arquivos que você costumava encontrar nos discos de instalação do MS-DOS e Windows 3.11 / 95. por exemplo, WINSOCK.DL_ expande para WINSOCK.DLL. Você pode descompactar os arquivos usando expand.
Bryan
25

Não que eu saiba. No que diz respeito às ferramentas de terceiros, o 7zip tem uma interface de linha de comando bastante agradável e o binário pode ser distribuído com o seu aplicativo no diretório do aplicativo, para que você não precise confiar na instalação antecipada.

Chris
fonte
Sou um grande fã do 7Zip, mas o problema atual está em uma máquina na qual não tenho direitos de instalação e não há um widget zip de terceiros instalado. Obrigado, no entanto.
Electrons_Ahoy
5
Como eu disse, você não precisa instalá-lo. Copie o binário para uma pasta em algum lugar e execute-o a partir daí.
1028 Chris
1
Bem, você e eu não consideramos essa instalação. O gerente de TI em questão, no entanto, sabe o que quero dizer. :)
Electrons_Ahoy
2
Ha, então execute o binário 7zip de um compartilhamento de rede remota :)
Brent Pabst
13

O .NET 4.5 possui essa funcionalidade incorporada e pode ser aproveitada pelo PowerShell. Você precisará estar no Server 2012, Windows 8 ou ter o .Net 4.5 instalado manualmente.

[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)
MDMarra
fonte
0

Existe um comando único e simples do PowerShell para isso. (PowerShell v5.0 +)

Para compactar:

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

Para descompactar:

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

Fontes:

Agradecimentos especiais a @Ramhound

cowlinator
fonte