8. 5. 2016

Powershell - zabalení nebo rozbalení archivu

Powershell standardně archivuje vše do ZIP souboru. To samé platí i pro rozbalení. Pokud byste chtěli využít jiný archivátor, určitě to možné je, nicméně v tomto článku se budu zabívat pouze tím, co je v Powershellu nativní.

Powershell verze 5

Ve verzi 5 je to jednodušší, protože je zde implementován CMDlet, který toto provádí napřímo a nemusíte tedy volat žádné další pomocníky.


Archivace složky c:\Temp\Test archivace

Compress-Archive -Path 'C:\Temp\Test archivace' -DestinationPath C:\Temp\archiv.zip


Přidání souborů do již existujícího archivu
Pozor, soubory se stejným názvem budou v archivu přepsány!

Compress-Archive -Path C:\Soubry\*.txt -Update -DestinationPath C:\Temp\archiv.zip


Rozbalení archivu

Expand-Archive -Path C:\Temp\archiv.zip -DestinationPath C:\Temp

Popis od MS najdete zde.


Powershell verze 4

V této verzi je to o něco složitější, ale nicméně také funkční.


Nejprve je potřeba přidat potřebný objekt. Stačí jej přidat pouze jednou před prvním spuštěním scriptů.

Add-Type -assembly "system.io.compression.filesystem"


Rozbalení archivu
Následně vytvořit proměnné s cestami

$Zip = 'C:\Temp\archiv.zip'
$Destination = 'C:\Temp\Test archivace'

A jako poslední zavolat třídu pro rozbalení
[io.compression.zipfile]::ExtractToDirectory($Zip, $Destination)

Zabalení složky
Znovu si vytvoříme proměnné s cestami

$Slozka = 'C:\Temp\Test archivace'
$Zip = 'C:\Temp\archiv.zip'

A zavoláme znovu třídu

[io.compression.zipfile]::CreateFromDirectory($Slozka, $Zip)

Popis třídy ZipFile je zde.

Žádné komentáře:

Okomentovat