PowerShell 5.0 (súčasťou systému Windows Management Framework 5.0, ktorý je štandardne zahrnutý v systéme Windows 10) má samostatný modul Microsoft.PowerShell.Archive, ktorý umožňuje vytvárať a extrahovať archívy ZIP z príkazového riadku alebo z skriptov PowerShell. Zoznam dostupných rutín v module Microsoft.PowerShell.Archive (C: \ Windows \ System32 \ WindowsPowerShell \ v1.0 \ Moduules \ Microsoft.PowerShell.Archive) je možné získať pomocou príkazu Get-Command.
Get-Command - Modul Microsoft.PowerShell.Archive | Tabuľka formátov -AutoSize;
- -- -- -
Funkcia Compress-Archive 1.0.0.0 Microsoft.PowerShell.Archive
Funkcia Rozbaliť-archivovať 1.0.0.0 Microsoft.PowerShell.Archive
Ako vidíme, sú k dispozícii dva rutiny cmdlet, ktorých mená hovoria samy za seba:
- Archív komprimácie
- Rozbaľte Archív
Pozrime sa na príklady použitia týchto rutín na vytváranie / rozbaľovanie ZIP archívov z určených súborov alebo adresárov.
Formát príkazu Archív komprimácie nasledujúce:
Komprimovaný archív [-Path] String [] [-DestinationPath] String [-ompressionLevel String] [-Update]
V parametri cesta sú špecifikované zdrojové súbory, ktoré sa majú zabaliť, -DestinationPath -umiestnenie vytvoreného archívneho súboru, CompressionLevel - úroveň kompresie (NoCompression, Optimal alebo Fastest). parameter -aktualizovať umožňuje pridávať / aktualizovať súbory do existujúceho archívu ZIP. S kľúčom -sila, ak archív so zadaným názvom už existuje, bude prepísaný.
rada. Úroveň komprimácie programu NoCompression by sa mala spravidla používať na kombinovanie už komprimovaných súborov (jpg, msi, mp3 atď.) Do jedného archívneho súboru, aby systém nestrácal čas pokusom o ich komprimáciu..Príklad príkazu na kompresiu jedného súboru:
Compress-Archive -Path C: \ Logs \ Update.log -DestinationPath C: \ Archive \ logs.zip -CompressionLevel Optimal
Komprimujte celý obsah adresára:
Compress-Archive -Path C: \ Logs \ -DestinationPath C: \ Archive \ logs-all.zip -CompressionLevel Optimal
Súbory môžete komprimovať pomocou špecifickej masky. Napríklad musíte zabaliť iba súbory s príponou * .txt.
Compress-Archive -Path C: \ Logs \ *. Txt -DestinationPath C: \ Archive \ logs-txt.zip -CompressionLevel Fastest Fast
Výnimka nazývajúca „Write“ s argumentom „3“: „Stream bol príliš dlhý.“
V C: \ Windows \ system32 \ WindowsPowerShell \ v1.0 \ Moduules \ Microsoft.PowerShell.Archive \ Microsoft.PowerShell.Archive.psm1: 805
char: 29
+... $ destStream.Write ($ buffer, 0, $ numberOfBytesRead)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo: Nešpecifikované: (:) [], MethodInvocationException
+ FullyQualifiedErrorId: IOException
Na rozbalenie ZIP archívu použite cmdlet Rozbaľte Archív.
Formát príkazu:
Rozbaliť-Archív [-Path] String [-DestinationPath] String [-Force] [-Potvrdiť]
Napríklad na rozbalenie predtým vytvoreného archívu ZIP prepísaním súborov v cieľovom adresári:
Rozbaliť-Archív-Cesta C: \ Scripts \ test1.zip -DestinationPath c: \ scripts -Force
Z nedostatkov archivačného modulu tejto verzie je potrebné poznamenať:
- Bez rozbalenia nie je možné zobraziť obsah archívu
- Časť súborov sa nedá extrahovať z archívu (iba úplná dekompresia)
- Nemôžete použiť iné archívne formáty ako ZIP
V predchádzajúcich verziách Poweshell môžete na kompresiu / dekompresiu súborov zip použiť triedu NET Framework 4.5 .zip archívu. Formát pre použitie triedy je nasledujúci.
Zabalíme súbory do archívu:
Add-Type -Assembly “system.io.compression.filesystem”
$ src = “C: \ Logs”
$ dst = “C: \ Archive \ test.zip”
[io.compression.zipfile] :: CreateFromDirectory ($ src, $ dst)
ZIP archív môžete rozbaliť nasledovne:
Add-Type -Assembly “system.io.compression.filesystem”
$ src = "C: \ Archive \ test.zip"
$ dst = "C: \ Logs \ Archve"
[io.compression.zipfile] :: ExtractToDirectory ($ src, $ dst)