PowerShell 5.0 (uključen u sustav Windows Management Framework 5.0, koji je prema zadanim postavkama uključen u sustav Windows 10) ima zaseban modul Microsoft.PowerShell.Archive, koji vam omogućuje stvaranje i ekstrahiranje ZIP arhiva iz naredbenog retka ili unutar PowerShell skripte. Popis raspoloživih cmdleta u modulu Microsoft.PowerShell.Archive (C: \ Windows \ System32 \ WindowsPowerShell \ v1.0 \ Modules \ Microsoft.PowerShell.Archive) može se dobiti pomoću Get-Command.
Get-Command -Module Microsoft.PowerShell.Archive | Format-Table -AutoSize;
- -- -- -
Funkcija Compress-Archive 1.0.0.0 Microsoft.PowerShell.Archive
Funkcija Proširi-Arhiva 1.0.0.0 Microsoft.PowerShell.Archive
Kao što vidimo, na raspolaganju su dva cmdleta čija imena govore sama za sebe:
- Stisni arhivu
- Proširi arhivu
Pogledajmo primjere korištenja tih cmdleta za stvaranje / raspakiranje ZIP arhiva iz određenih datoteka ili direktorija.
Format naredbe Stisni arhivu sljedeće:
Compress-Archive [-Path] String [] [-DestinationPath] string [-CompressionLevel String] [-Ažuriranje]
U parametru put specificiraju se izvorne datoteke za pakiranje, -DestinationPath -mjesto stvorene arhivske datoteke, CompressionLevel - nivo kompresije (bez kompresije, optimalno ili najbrže). parametar -ažuriranje omogućava vam dodavanje / ažuriranje datoteka u postojećoj ZIP arhivi. S ključem -sila, ako arhiva s navedenim imenom već postoji, bit će prebrisana.
vijeće. Razina kompresije NoCompression, u pravilu, treba koristiti za kombiniranje već komprimiranih datoteka (jpg, msi, mp3, itd.) U jednu arhivsku datoteku kako sustav ne bi gubio vrijeme pokušavajući ih komprimirati..Primjer naredbe za komprimiranje jedne datoteke:
Compress-Archive -Path C: \ Logs \ Update.log -DestinationPath C: \ Archive \ logs.zip -CompressionLevel Optimal
Stisnite cijeli sadržaj mape:
Sažimanje-Arhiva-Put C: \ Dnevnici \ -Destinacijski put C: \ Arhiva \ logs-all.zip -Kompresija Nivo Optimalno
Datoteke možete komprimirati određenom maskom. Na primjer, morate spakirati samo datoteke s nastavkom * .txt.
Compress-Archive -Path C: \ Logs \ *. Txt -DestinationPath C: \ Archive \ logs-txt.zip -CompressionLevel Najbrži
Iznimka koja poziva "Write" s argumentima (argumentima) "3": "Stream je bio predug."
Na C: \ Windows \ system32 \ WindowsPowerShell \ v1.0 \ Modules \ Microsoft.PowerShell.Archive \ Microsoft.PowerShell.Archive.psm1: 805
char: 29
+... $ destStream.Write ($ međuspremnik, 0, $ brojOfBytesRead)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ KategorijaInfo: Nije specificirano: (:) [], MethodInvocationException
+ PotpunoKvalificiraniErrorId: IOException
Da biste raspakirali ZIP arhivu, koristite cmdlet Proširi arhivu.
Format naredbe:
Proširi-Archive [-Path] string [-DestinationPath] string [-Force] [-Confirm]
Na primjer, raspakujte prethodno stvorenu zip arhivu prepisivanjem datoteka u ciljanom direktoriju:
Proširi-Arhiva-Put C: \ Scripts \ test1.zip -DestinationPath c: \ skripte -Force
Od nedostataka modula za arhiviranje ove verzije, valja napomenuti:
- Nije moguće pregledati arhivski sadržaj bez raspakiranja
- Dio datoteka ne može se izvaditi iz arhive (samo potpuna dekompresija)
- Ne možete koristiti druge arhivske formate osim zip
U prethodnim verzijama Poweshell-a možete koristiti klasu NET Framework 4.5 za komprimiranje / dekomprimiranje ZIP datoteka sažeta. Format korištenja klase je sljedeći.
Spakujemo datoteke u arhivu:
Add-Type -Sastavljanje "system.io.compression.filesystem"
$ src = "C: \ Zapisnici"
$ dst = "C: \ Arhiva \ test.zip"
[io.compression.zipfile] :: CreateFromDirectory ($ src, $ dst)
Možete raspakirati ZIP arhivu na sljedeći način:
Add-Type -Sastavljanje "system.io.compression.filesystem"
$ src = "C: \ Arhiva \ test.zip"
$ dst = "C: \ Zapisnici \ Arhiva"
[io.compression.zipfile] :: ExtractToDirectory ($ src, $ dst)