Hogyan hozhat létre ZIP archívumot a PowerShell használatával?

A PowerShell 5.0 (amely a Windows Management Framework 5.0 rendszerhez tartozik, amelyet alapértelmezés szerint a Windows 10 tartalmaz) külön modullal rendelkezik Microsoft.PowerShell.Archive, amely lehetővé teszi ZIP archívumok létrehozását és kibontását a parancssorból vagy a PowerShell parancsfájlokból. A Microsoft.PowerShell.Archive modulban elérhető elérhető parancsmagok listája (C: \ Windows \ System32 \ WindowsPowerShell \ v1.0 \ Modules \ Microsoft.PowerShell.Archive) a Get-Command használatával érhető el..

Get-Command -modul Microsoft.PowerShell.Archive | Táblázat formátuma - AutoSize;

CommandType Név Verzió Forrás
- --             -- -
Funkció Compress-Archive 1.0.0.0 Microsoft.PowerShell.Archive
Funkció Expand-Archive 1.0.0.0 Microsoft.PowerShell.Archive

Mint láthatjuk, két cmdlet érhető el, amelyek nevei magukért beszélnek:

  • Tömörítse az archívumot
  • Bontsa ki az Archívumot

Nézzük meg példákat ezekre a parancsmagokra, a megadott fájlokból vagy könyvtárakból ZIP-archívumok létrehozásához / kibontásához.

Parancs formátuma Tömörítse az archívumot következő:

Compress-Archive [-Path] String [] [-DestinationPath] String [-CompressionLevel String] [-Update]

Paraméterben útvonal meg kell határozni a csomagolni kívánt forrásfájlokat, -DestinationPath -a létrehozott archív fájl helye, CompressionLevel - tömörítési szint (NoCompression, Optimális vagy Leggyorsabb). paraméter -frissítés lehetővé teszi a fájlok hozzáadását / frissítését egy meglévő ZIP-archívumban. Kulccsal -erő, Ha a megadott névvel rendelkező archívum már létezik, akkor azt felülírják.

tanács. A NoCompression tömörítési szintjét általában a már tömörített fájlok (jpg, msi, mp3 stb.) Egyetlen archívumfájlba történő egyesítésére kell használni, hogy a rendszer ne pazarolja az időt tömörítésükre..

Példa parancs egyetlen fájl tömörítésére:

Tömörítés - Archívum - C út: \ Naplók \ Update.log - Célútvonal C út: \ Archívum \ logs.zip -CompressionLevel Optimal


Tömörítse a könyvtár teljes tartalmát:

Tömörítés - Archívum - C út: \ Naplók \ -Célcím C: \ Archívum \ logs-all.zip -CompressionLevel Optimal

A fájlokat egy adott maszkkal tömörítheti. Például csak a * .txt kiterjesztésű fájlokat kell csomagolnia.

Compress-Archive -C út: \ Naplók \ * .Txt -DestinationPath C: \ Archive \ logs-txt.zip -CompressionLevel Leggyorsabb

megjegyzés. mert A Microsoft.PowerShell.Archive modul a System.IO.Compression.ZipArchive osztály hívásait használja, nem lehet 2 GB-nál nagyobb fájlokat tömöríteni. Ha nagyobb fájlt próbál tömöríteni, hibaüzenet jelenik meg
Kivétel: "Írj" és "3" argumentum (ok) hívása: "A stream túl hosszú volt."
C: \ Windows \ system32 \ WindowsPowerShell \ v1.0 \ Modulok \ Microsoft.PowerShell.Archive \ Microsoft.PowerShell.Archive.psm1: 805
char: 29
+... $ destStream.Write ($ buffer, 0, $ numberOfBytesRead)
+                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Kategóriainformáció: Nincs meghatározva: (:) [], MethodInvocationException
+ FullyQualifiedErrorId: IOException

A ZIP-archívum kibontásához használja a parancsmagot Bontsa ki az Archívumot.
Parancs formátuma:

Expand-Archive [-Path] String [-DestinationPath] String [-Force] [-Confirm]

Például a korábban létrehozott ZIP-archívum kibontásához a célkönyvtárban található fájlok felülírásával:

Bontsa ki - Archívum - C út: \ Scripts \ test1.zip -DestinationPath c: \ scripts -Force

A verzió archiválási moduljának hiányosságai közül érdemes megjegyezni:

  • Nem lehet megtekinteni az archívum tartalmát, annak kicsomagolása nélkül
  • A fájlok egy részét nem lehet kibontani az archívumból (csak teljes tömörítés)
  • A zip formátumon kívül más archívumformátumok nem használhatók

A Poweshell korábbi verzióiban a NET Framework 4.5 osztályt használhatja a ZIP fájlok tömörítésére / kicsomagolására zipfile. Az osztály használatának formátuma a következő.

Csomagoljuk a fájlokat az archívumba:

Add-Type - Összeszerelés “system.io.compression.filesystem”
$ src = “C: \ Naplók”
$ dst = “C: \ Archive \ test.zip”
[io.compression.zipfile] :: CreateFromDirectory ($ src, $ dst)

A következők szerint kibonthatja a ZIP-archívumot:

Add-Type - Összeszerelés “system.io.compression.filesystem”
$ src = "C: \ Archive \ test.zip"
$ dst = "C: \ Naplók \ Archve"
[io.compression.zipfile] :: ExtractToDirectory ($ src, $ dst)