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
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í
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.
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:
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
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:
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.