Чи в Windows є вбудована команда ZIP для командного рядка?


119

Оскільки у Провідника Windows (оскільки принаймні Windows XP) є основна підтримка ZIP-файлів, схоже, має бути еквівалент командного рядка, але я не можу знайти жодного ознаки такого.

Чи постачається Windows (XP, Vista, 7, 8, 2003, 2008, 2013) із вбудованим інструментом ZIP, чи мені потрібно дотримуватися сторонні інструменти?


5
Я не зовсім впевнений, чому це питання закрите. Це часто виникає у формі "Як стискати журнали?", Що, безумовно, "Експлуатація, обслуговування та моніторинг". Питання може бути перефразоване як вузьке, я думаю, але рішення загальні.
alficles

3
Не впевнений, чому це закрито, оскільки його перший хіт в Google для "zip 2008 zip"
AlSki

2
^ Я почуваюсь так само (чітко), особливо зважаючи на прийняту відповідь.
Electrons_Ahoy

1
У Windows 7 ви також можете використовуватиcompact
jyz

Вікна вбудованої компрес / розтискати утиліти - stackoverflow.com/questions/28043589 / ...
npocmaka

Відповіді:


56

Він не вбудований в Windows, але він знаходиться в інструментах Resource Kit як 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.

Приклади:

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

1
Неправильне посилання! Правильні посилання: microsoft.com/downloads/…
Lars Fastrup

1
Чи можна це використовувати і на Windows Server 2008?
Макс

7
Це далеко не корисний ZIP-клієнт. Ви не можете стискати папки, і, здається, немає можливості додати стиснуті файли до наявного архіву. Уникайте.
roufamatic

Хтось ще отримує папку "Стиснута (на блискавці) недійсна або пошкоджена", коли ви двічі клацніть файл, стиснений цим методом?
Люк Сампсон

4
Стиснення насправді не є клієнтом ZIP. Він створює ті файли, які ви знаходили на установчих дисках MS-DOS та Windows 3.11 / 95. наприклад WINSOCK.DL_ розширюється до WINSOCK.DLL. Ви можете розпакувати файли за допомогою expand.
Брайан

25

Не те, що мені відомо. Що стосується інструментів сторонніх розробників, 7zip має досить гарний інтерфейс командного рядка, а двійковий файл можна розповсюджувати разом із вашим додатком у каталозі програми, тому вам не доведеться покладатися на його встановлення достроково.


Я є великим шанувальником 7Zip, але поточний випуск є на машині, на яку я не маю прав на встановлення, і не встановлено стороннього віджета zip. Спасибі, хоча.
Electrons_Ahoy

5
Як я вже говорив, вам не потрібно його встановлювати. Скопіюйте файл двійкового файлу кудись і запустіть його звідти.
Кріс

1
Що ж, ми з вами не вважаємо це встановленням. ІТ-менеджер, про який йдеться, робить, якщо ви знаєте, про що я. :)
Electrons_Ahoy

2
Так, запустіть двійковий файл 7zip з віддаленої мережі. :)
Brent Pabst

21

Солодке! Я подумав, що також повинно бути рішення, що стосується оболонки.
Electrons_Ahoy

Це не команда, а серія сценаріїв. Це працює, хоча.
ковбасник

13

.Net 4.5 має вбудовану функціональність, і її може використовувати PowerShell. Вам потрібно буде бути на сервері 2012, Windows 8 або мати .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)


0

Для цього існує єдина проста команда PowerShell. (PowerShell v5.0 +)

Щоб поштовувати:

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

Щоб розпакувати:

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

Джерела:

Особлива подяка @Ramhound

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.