Пакуємо та розпаковуємо архіви за допомогою Power Shell

Командлет стиснення та розпакування архівів вперше з'явилися в PowerShell 5 і давали можливість легко стискати та розпаковувати архіви за допомогою командного рядка. Користуючись командлетами, ви заощадите час і місце на жорсткому диску при упаковці, наприклад, лог-файлів або папок.

Ви запитаєте, а навіщо мені це знати, коли простіше клацнути правою кнопкою миші по файлу чи папці та вибрати пункт меню «Додати до архіву…». Багато сторонні утиліти, такі як 7-zip, підтримують функцію архівування за допомогою командного рядка. Однак, командлети дуже корисні, якщо ви хочете автоматизувати завдання за допомогою PowerShell.

Сама операція архівування та розпакування в PowerShell виконується за допомогою двох командлетів:

  • Compress-Archive – використовується для стиснення файлів та папок
  • Expand-Archive – використовується для вилучення (розпакування) стислих архівів

Стискаємофайлів zip архів

Параметр compressionlevel підтримує кілька режимів компресії:

  • Fastest - найшвидший метод стиснення (стислі файли, папки мають найбільший розмір)
  • NoCompression - без стиснення (файли, папки будуть об'єднані в один файл архіву без стиснення)
  • Optimal – найповільніший метод стиснення (стислі файли, папки мають найменший розмір)

У наведеному прикладі створимо архів «logs.zip» папки логів веб-сервера IIS.

Замість параметра -Path, ви можете підставити командлет -LiteralPath, який відповідає за те, що символи підстановки не будуть інтерпретовані в PowerShell. Параметр –Update командлета Compress-Archive замінює стару версію файлу на новий.

Введення параметрів можна пропустити. Тоді командаархівування набуде вигляду:

Розпаковуємо архів

Розпакуємо архів iislogs.zip у нову папку поточної директорії

Зауважте, що якщо пропустити параметр –DestinationPath, PowerShell автоматично створить нову папку з таким же ім'ям, як і ім'я архіву. У наведеному прикладі нова папка отримає ім'я «iislogs».