Jak komprimovat (a rozbalovat) soubory pomocí PowerShellu

Formát souboru ZIP snižuje velikost souborů jejich komprimací do jednoho souboru. Tento proces šetří místo na disku, šifruje data a usnadňuje sdílení souborů s ostatními. Zde je návod, jak komprimovat a rozbalovat soubory pomocí PowerShellu.

Jak komprimovat soubory pomocí PowerShellu

Začněme komprimací některých souborů do archivu souborů ZIP pomocí rutiny Compress-Archive. Vezme cestu ke všem souborům, které chcete zkomprimovat – více souborů je odděleno čárkou – a archivuje je na určené místo.

Nejprve otevřete PowerShell tak, že jej vyhledáte v nabídce Start a poté napíšete následující příkaz, který nahradíte a s cestou k souborům, které chcete komprimovat, a názvem a složkou, kam chcete, aby to bylo:

Compress-Archive -LiteralPath  -DestinationPath 

Když zadáte cílovou cestu, nezapomeňte pojmenovat soubor archivu, jinak jej PowerShell uloží jako „.zip“, kam zadáte.

Poznámka: Uvozovky kolem cesty jsou nutné pouze v případě, že cesta k souboru obsahuje mezeru.

Alternativně můžete celý obsah složky – a všechny její podsložky – zabalit do zipu – můžete použít následující příkaz, který nahradí a s cestou k souborům, které chcete komprimovat, a názvem a složkou, do které chcete, aby to šlo:

Compress-Archive -LiteralPath  -DestinationPath 

V předchozím příkladu jsme vložili cestu k adresáři s více soubory a složkami, aniž bychom specifikovali jednotlivé soubory. PowerShell vezme vše z kořenového adresáře a zkomprimuje jej, podsložky a vše.

  Jak sdílet soubory v počítači VirtualBox na Linuxu

Rutina Compress-Archive umožňuje použít zástupný znak

k dalšímu rozšíření funkčnosti. Při použití znaku můžete vyloučit kořenový adresář, komprimovat pouze soubory v adresáři nebo vybrat všechny soubory určitého typu. Chcete-li použít zástupný znak s Compress-Archive, musíte místo něj použít parametr -Path, protože -LiteralPath je nepřijímá.

Compress-Archive -Path C:pathtofile* -DestinationPath C:pathtoarchive.zip

Výše jsme probrali, jak zahrnout kořenový adresář a všechny jeho soubory a podadresáře při vytváření archivního souboru. Pokud však chcete vyloučit kořenovou složku ze souboru ZIP, můžete ji z archivu vynechat pomocí zástupného znaku. Přidáním hvězdičky

Compress-Archive -Path C:pathtofile*.jpg -DestinationPath C:pathtoarchive.zip

na konec cesty k souboru řeknete PowerShellu pouze to, aby uchopil to, co je uvnitř kořenového adresáře. Mělo by to vypadat nějak takto:

  Jaký je rozdíl mezi HBO Max, HBO NOW a HBO Go?

Dále řekněme, že máte složku se spoustou různých typů souborů (.doc, .txt, .jpg atd.), ale chcete komprimovat pouze všechny jednoho typu. PowerShellu můžete říci, aby je archivoval, aniž byste se výslovně dotkli ostatních. Zápis příkazu by vypadal takto:

Compress-Archive -Path C:pathtofile*.* -DestinationPath C:pathtoarchive.zip

Poznámka: Podadresáře a soubory kořenové složky nejsou touto metodou zahrnuty do archivu.

A konečně, pokud chcete archiv, který pouze komprimuje soubory v kořenovém adresáři – a všech jeho podadresářích – použijte k jejich zazipování zástupný znak hvězda-tečka-hvězda (*.*). Vypadalo by to nějak takto:

Compress-Archive -Path C:pathtofiles -Update -DestinationPath C:pathtoarchive.zip

Poznámka: Podadresáře a soubory kořenové složky nejsou touto metodou zahrnuty do archivu.

I po dokončení archivu můžete aktualizovat existující zazipovaný soubor pomocí parametru -Update. Umožňuje vám nahradit starší verze souborů v archivu novějšími, které mají stejné názvy, a přidat soubory, které byly vytvořeny v kořenovém adresáři. Bude to vypadat nějak takto:

Jak rozbalit soubory pomocí PowerShellu Kromě možnosti zazipovat soubory a složky má PowerShell možnost rozbalit archivy. Proces je ještě jednodušší než je komprimovat; vše, co potřebujete, je zdrojový soubor a cíl pro data připravená k rozbalení. Otevřete PowerShell a zadejte následující příkaz, nahraďte jej

Expand-Archive -LiteralPath  -DestinationPath 

a

s cestou k souborům, které chcete komprimovat, a názvem a složkou, do které chcete, aby to šlo:

  Jak zálohovat nastavení Budgie Desktop na Linuxu

Cílová složka určená pro extrahování souborů se naplní obsahem archivu. Pokud složka před rozbalením neexistovala, PowerShell složku vytvoří a před rozbalením do ní umístí obsah.

Pokud ve výchozím nastavení vynecháte parametr -DestinationPath, PowerShell rozbalí obsah do aktuálního kořenového adresáře a použije název souboru Zip k vytvoření nové složky.

Pokud v předchozím příkladu vynecháme -DestinationPath , PowerShell vytvoří složku „Archive“ v cestě „C:Usersbrady“ a rozbalí soubory z archivu do složky.

Pokud složka již v cílovém umístění existuje, PowerShell při pokusu o rozbalení souborů vrátí chybu. Můžete však přinutit PowerShell k přepsání dat novými pomocí parametru -Force.

Parametr -Force byste měli používat pouze v případě, že staré soubory již nejsou potřeba, protože to nenávratně nahradí soubory ve vašem počítači.