Пакуємо та розпаковуємо архіви за допомогою 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».