¿Windows tiene un comando ZIP incorporado para la línea de comando?

119

Dado que Windows Explorer (ya que al menos Windows XP) tiene un soporte básico para archivos ZIP, parece que debería haber un equivalente en la línea de comandos, pero parece que no puedo encontrar ningún signo de uno.

¿Windows (XP, Vista, 7, 8, 2003, 2008, 2013) se envía con una herramienta zip de línea de comandos incorporada, o debo seguir con herramientas de terceros?

Electrones_Ahoy
fuente
55
No estoy completamente seguro de por qué esta pregunta está cerrada. Esto aparece frecuentemente en la forma de "¿Cómo comprimo mis registros?", Que definitivamente es "Operaciones, mantenimiento y monitoreo". La pregunta podría reformularse para ser más estrecha, supongo, pero las soluciones son generales.
alficles
3
No estoy seguro de por qué esto está cerrado, ya que es el primer éxito en Google para "Windows 2008 zip"
AlSki
2
^ Me siento de la misma manera (claramente), especialmente considerando la respuesta aceptada.
Electrons_Ahoy
1
En Windows 7 también puede usarcompact
jyz
Utilidades de

Respuestas:

56

No está integrado en Windows, pero está en las Herramientas del 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.

Ejemplos:

COMPRESS temp.txt compressed.txt
COMPRESS -R *.*
COMPRESS -R *.exe *.dll compressed_dir
Bryan
fuente
1
¡Link incorrecto! Los enlaces correctos son: microsoft.com/downloads/…
Lars Fastrup
1
¿Se puede usar esto también en Windows Server 2008?
Max
77
Esto está muy lejos de ser un cliente ZIP utilizable. No puede comprimir carpetas y parece que no hay forma de agregar archivos comprimidos a un archivo existente. Evitar.
roufamatic
¿Alguien más obtiene "La carpeta comprimida (comprimida) no es válida o está dañada" cuando hace doble clic en el archivo comprimido con este método?
Luke Sampson
44
Compress no es realmente un cliente ZIP. Crea los archivos que solía encontrar en los discos de instalación de MS-DOS y Windows 3.11 / 95. por ejemplo, WINSOCK.DL_ se expande a WINSOCK.DLL. Puede descomprimir los archivos usando expand.
Bryan
25

No que yo supiese. En lo que respecta a las herramientas de terceros, 7zip tiene una interfaz de línea de comandos bastante agradable y el binario se puede distribuir con su aplicación en el directorio de la aplicación, por lo que no tiene que confiar en que se instale con anticipación.

Chris
fuente
Soy un gran admirador de 7Zip, pero el problema actual está en una máquina en la que no tengo derechos de instalación, y no hay un widget zip de terceros instalado. Gracias, sin embargo.
Electrons_Ahoy
55
Como dije, no tienes que instalarlo. Copie el binario en una carpeta en algún lugar y ejecútelo desde allí.
Chris
1
Bueno, tú y yo no consideramos que la instalación. Sin embargo, el gerente de TI en cuestión sí, si sabes a lo que me refiero. :)
Electrons_Ahoy
2
Ja, así que ejecuta el binario 7zip desde un recurso compartido de red remoto :)
Brent Pabst
13

.Net 4.5 tiene esta funcionalidad incorporada y PowerShell puede aprovecharla. Deberá estar en Server 2012, Windows 8 o tener .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
fuente
0

Hay un único comando simple de PowerShell para esto. (PowerShell v5.0 +)

Comprimir:

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

Descomprimir:

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

Fuentes:

Un agradecimiento especial a @Ramhound

cowlinator
fuente