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