it-swarm.com.de

Verfügt Windows über einen integrierten Zip-Befehl für die Befehlszeile?

Da Windows Explorer (seit mindestens Windows XP) einige grundlegende Unterstützung für Zip-Dateien bietet, sollte es anscheinend ein Befehlszeilenäquivalent geben, aber ich kann anscheinend keine Anzeichen dafür finden.

Wird Windows (XP, Vista, 7, 8, 2003, 2008, 2013) mit einem integrierten Befehlszeilen-Zip-Tool ausgeliefert, oder muss ich mich an Tools von Drittanbietern halten?

119
Electrons_Ahoy

Es ist nicht in Windows integriert, aber es ist in Resource Kit Tools als 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.

Beispiele:

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

Nicht dass ich wüsste. In Bezug auf Tools von Drittanbietern verfügt 7Zip über eine hübsche Befehlszeilenschnittstelle, und die Binärdatei kann mit Ihrer App im Verzeichnis der App verteilt werden, sodass Sie sich nicht darauf verlassen müssen, dass sie vorab installiert wird.

25
Chris
21
John Rennie

.Net 4.5 verfügt über diese integrierte Funktionalität und kann von PowerShell genutzt werden. Sie müssen auf Server 2012 oder Windows 8 sein oder .Net 4.5 manuell installiert haben.

[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

Eine andere auf der Superuser-Site gefundene Lösung verwendet das native Windows-COM-Objekt in der BAT-Datei:

Können Sie eine Datei über die Eingabeaufforderung komprimieren, indem Sie NUR die in Windows integrierte Funktion zum Komprimieren von Dateien verwenden?

6
Krilivye

Hierfür gibt es einen einzigen einfachen PowerShell-Befehl. (PowerShell v5.0 +)

Zum Reißverschluss:

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

Entpacken:

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

Quellen:

Besonderer Dank geht an @Ramhound

0
cowlinator