Czy system Windows ma wbudowane polecenie ZIP dla wiersza poleceń?

119

Ponieważ Eksplorator Windows (przynajmniej Windows XP) ma pewne podstawowe wsparcie dla plików ZIP, wydaje się, że powinien istnieć odpowiednik wiersza poleceń, ale nie mogę znaleźć żadnego śladu takiego.

Czy system Windows (XP, Vista, 7, 8, 2003, 2008, 2013) jest dostarczany z wbudowanym narzędziem zip wiersza polecenia, czy też muszę trzymać się narzędzi innych firm?

Electrons_Ahoy
źródło
5
Nie jestem do końca pewien, dlaczego to pytanie jest zamknięte. Często pojawia się w postaci „Jak skompresować moje dzienniki?”, Co zdecydowanie oznacza „Operacje, konserwacja i monitorowanie”. Wydaje mi się, że pytanie można sformułować jako węższe, ale rozwiązania są ogólne.
cieszy
3
Nie jestem pewien, dlaczego jest to pierwszy hit w Google dla „Windows 2008 zip”
AlSki,
2
^ Czuję to samo (wyraźnie), szczególnie biorąc pod uwagę przyjętą odpowiedź.
Electrons_Ahoy
1
W systemie Windows 7 możesz także użyćcompact
jyz
Wbudowane w Windows narzędzia do kompresji / dekompresji - stackoverflow.com/questions/28043589/...
npocmaka

Odpowiedzi:

56

To nie jest wbudowana w Windows, ale jest w zestaw narzędzi do zasobów jak 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.

Przykłady:

COMPRESS temp.txt compressed.txt
COMPRESS -R *.*
COMPRESS -R *.exe *.dll compressed_dir
Bryan
źródło
1
Zły link! Prawidłowe linki to: microsoft.com/downloads/…
Lars Fastrup
1
Czy można tego również użyć w systemie Windows Server 2008?
Maks.
7
Jest to dalekie od użytecznego klienta ZIP. Nie można kompresować folderów i wydaje się, że nie ma możliwości dodania skompresowanych plików do istniejącego archiwum. Uniknąć.
roufamatic
Ktoś inny dostaje „Folder skompresowany (spakowany) jest nieprawidłowy lub uszkodzony” po dwukrotnym kliknięciu pliku skompresowanego tą metodą?
Luke Sampson
4
Kompres nie jest tak naprawdę klientem ZIP. Tworzy pliki, które można znaleźć na dyskach instalacyjnych MS-DOS i Windows 3.11 / 95. np. WINSOCK.DL_ rozwija się do WINSOCK.DLL. Możesz rozpakować pliki za pomocą expand.
Bryan
25

Nie, że jestem świadomy. Jeśli chodzi o narzędzia innych firm, 7zip ma całkiem ładny interfejs wiersza poleceń, a plik binarny może być dystrybuowany wraz z aplikacją w katalogu aplikacji, więc nie musisz polegać na tym, że zostanie ona zainstalowana wcześniej.

Chris
źródło
Jestem wielkim fanem 7Zip, ale obecny problem dotyczy komputera, na którym nie mam uprawnień do instalacji i nie ma zainstalowanego widgetu zip innej firmy. W każdym razie dzięki.
Electrons_Ahoy
5
Tak jak powiedziałem, nie musisz go instalować. Skopiuj plik binarny do folderu i uruchom go stamtąd.
Chris
1
Cóż, ty i ja nie uważamy tego za instalację. Menedżer IT, o którym mowa, wie jednak, jeśli wiesz, co mam na myśli. :)
Electrons_Ahoy
2
Ha, więc uruchom plik binarny 7zip ze zdalnego udziału sieciowego :)
Brent Pabst
13

.Net 4.5 ma wbudowaną tę funkcjonalność i może być wykorzystany przez PowerShell. Musisz być na serwerze 2012, Windows 8 lub ręcznie zainstalować .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)
MDMarra
źródło
0

Jest do tego jedno proste polecenie PowerShell. (PowerShell v5.0 +)

Aby spakować:

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

Rozpiąć:

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

Źródła:

Specjalne podziękowania dla @Ramhound

cowlinator
źródło