Формат файлів ZIP дозволяє зменшити їхній розмір, об’єднуючи кілька файлів в один стиснений архів. Цей метод не тільки заощаджує дисковий простір, але й забезпечує шифрування даних та спрощує обмін файлами з іншими користувачами. Розглянемо, як створювати та розпаковувати ZIP-архіви за допомогою PowerShell.
Створення ZIP-архіву за допомогою PowerShell
Для початку розглянемо процес стиснення файлів у ZIP-архів за допомогою командлета Compress-Archive
. Цей командлет приймає шляхи до файлів, які потрібно заархівувати (кілька шляхів розділяються комами), і створює архів у вказаному місці призначення.
Відкрийте PowerShell, знайшовши його через меню “Пуск”, та введіть наступну команду, замінивши <шлях_до_файлів>
та <шлях_до_місця_призначення>
на відповідні шляхи до файлів, які необхідно стиснути, та ім’я і папку, де буде збережено архів:
Compress-Archive -LiteralPath <шлях_до_файлів> -DestinationPath <шлях_до_місця_призначення>
При вказівці шляху призначення, не забудьте дати ім’я файлу архіву. Якщо не вказати ім’я, PowerShell збереже його як “.zip” у зазначеному місці.
Примітка: Лапки навколо шляху необхідні лише в тому випадку, якщо шлях до файлу містить пробіли.
Для архівування цілого вмісту папки, включно з усіма підпапками, можна скористатись наступною командою, замінивши <шлях_до_папки>
і <шлях_до_місця_призначення>
відповідними шляхами:
Compress-Archive -LiteralPath <шлях_до_папки> -DestinationPath <шлях_до_місця_призначення>
У наведеному прикладі ми вказали шлях до каталогу з різними файлами і папками, не виділяючи окремі файли. PowerShell автоматично стискає все, що знаходиться в кореневому каталозі, включно з усіма підпапками.
Командлет Compress-Archive
також дозволяє використовувати символ підстановки *
для розширення функціональності. За допомогою цього символу ви можете виключити кореневий каталог, стиснути лише файли всередині нього, або обрати всі файли певного типу. Для використання підстановки потрібно використовувати параметр -Path
, оскільки -LiteralPath
їх не підтримує.
Compress-Archive -Path C:шлях_до_файлу* -DestinationPath C:шлях_до_архіву.zip
Раніше ми розглянули, як включити кореневий каталог і всі його вкладення під час створення архіву. Однак, якщо потрібно виключити кореневу папку з архіву, можна скористатися символом підстановки, щоб не включати її. Додавши зірочку *
в кінці шляху до файлу, ви вказуєте PowerShell обробити лише вміст кореневого каталогу:
Compress-Archive -Path C:шлях_до_файлу*.jpg -DestinationPath C:шлях_до_архіву.zip
Наприклад, якщо у вас є папка з файлами різних типів (.doc, .txt, .jpg), але потрібно стиснути лише файли певного типу, можна вказати PowerShell архівувати тільки їх, не зачіпаючи інші. Команда в цьому випадку буде виглядати так:
Compress-Archive -Path C:шлях_до_файлу*.* -DestinationPath C:шлях_до_архіву.zip
Примітка: Підкаталоги та файли кореневої папки не включаються в архів за допомогою цього методу.
Якщо вам потрібен архів, який стискає файли лише в кореневому каталозі та в усіх його підкаталогах, необхідно використовувати символ *.*
для їхнього архівування. Команда буде виглядати так:
Compress-Archive -Path C:шлях_до_файлів -Update -DestinationPath C:шлях_до_архіву.zip
Оновлення ZIP-архіву
Навіть після створення архіву, ви можете його оновити, використовуючи параметр -Update
. Цей параметр дозволяє замінювати старі файли новими версіями з тими ж іменами, а також додавати файли, які були створені в кореневому каталозі. Команда матиме наступний вигляд:
Як розпакувати файли за допомогою PowerShell
Крім створення архівних файлів, PowerShell також надає можливість їх розпакування. Цей процес навіть простіший за стиснення. Все, що потрібно – це вихідний файл та місце призначення для вилучених даних. Відкрийте PowerShell і введіть наступну команду, замінивши <шлях_до_zip_файлу>
та <шлях_до_місця_призначення>
відповідними шляхами:
Expand-Archive -LiteralPath <шлях_до_zip_файлу> -DestinationPath <шлях_до_місця_призначення>
Вказана папка призначення буде заповнена вмістом архіву. Якщо такої папки не існувало, PowerShell створить її перед розпакуванням.
Якщо не вказати параметр -DestinationPath
, PowerShell розпакує вміст у поточний кореневий каталог та створить нову папку з назвою zip-файлу.
Наприклад, якщо ми пропустимо -DestinationPath
, PowerShell створить папку «Архів» у шляху «C:Usersbrady» та витягне файли з архіву в цю папку.
Якщо папка вже існує в місці призначення, PowerShell видасть повідомлення про помилку. Однак, ви можете змусити PowerShell перезаписати дані за допомогою параметра -Force
.
Увага: Використовуйте параметр -Force
лише у випадку, якщо старі файли більше не потрібні, оскільки це безповоротно замінить файли на вашому комп’ютері.