How to Zip (and Unzip) Files Using PowerShell

  • Brady Gavin

    @bradyjgavin

  • June 22, 2020, 11:23am EDT

Format pliku ZIP zmniejsza rozmiar plików poprzez skompresowanie ich do pojedynczego pliku. Proces ten oszczędza miejsce na dysku, szyfruje dane i ułatwia dzielenie się plikami z innymi. Oto jak zipować i rozpakowywać pliki za pomocą PowerShell.

Jak zipować pliki za pomocą PowerShell

Zacznijmy od skompresowania kilku plików do archiwum ZIP za pomocą cmdletu Compress-Archive. Pobiera on ścieżkę do dowolnych plików, które chcesz skompresować – wiele plików oddzielamy przecinkiem – i archiwizuje je w określonym przez Ciebie miejscu.

Najpierw otwórz PowerShell, wyszukując go w menu Start, a następnie wpisz następujące polecenie, zastępując <PathToFiles> i <PathToDestination> odpowiednio ścieżką do plików, które chcesz skompresować, oraz nazwą i folderem, do którego mają trafić:

Compress-Archive -LiteralPath <PathToFiles> -DestinationPath <PathToDestination>
Reklama

Podając ścieżkę docelową, pamiętaj, aby nadać plikowi archiwum nazwę lub PowerShell zapisze go jako „.zip” w miejscu określonym przez użytkownika.

Uwaga: Cudzysłów wokół ścieżki jest konieczny tylko wtedy, gdy ścieżka pliku zawiera spację.

Alternatywnie, aby zapakować całą zawartość folderu i wszystkie jego podfoldery, możesz użyć następującego polecenia, zastępując <PathToFolder> i <PathToDestination> odpowiednio ścieżką do plików, które chcesz skompresować, oraz nazwą i folderem, do którego chcesz, aby trafiły:

Compress-Archive -LiteralPath <PathToFolder> -DestinationPath <PathToDestination>

W poprzednim przykładzie umieściliśmy ścieżkę do katalogu, w którym znajduje się wiele plików i folderów, bez określania poszczególnych plików. PowerShell bierze wszystko wewnątrz katalogu głównego i kompresuje to, podfoldery i wszystko.

Reklama

Centdlet Compress-Archive pozwala na użycie znaku wieloznacznego (*), aby rozszerzyć funkcjonalność jeszcze bardziej. Używając tego znaku, można wykluczyć katalog główny, skompresować tylko pliki w katalogu lub wybrać wszystkie pliki określonego typu. Aby użyć znaku wieloznacznego w Compress-Archive, musisz użyć parametru -Path, ponieważ -LiteralPath ich nie akceptuje.

Powyżej opisaliśmy, jak uwzględnić katalog główny oraz wszystkie jego pliki i podkatalogi podczas tworzenia pliku archiwum. Jeśli jednak chcesz wykluczyć katalog główny z pliku Zip, możesz użyć symbolu wieloznacznego, aby pominąć go w archiwum. Dodając gwiazdkę (*) na końcu ścieżki do pliku, każesz PowerShellowi pobrać tylko to, co znajduje się wewnątrz katalogu głównego. Powinno to wyglądać mniej więcej tak:

Compress-Archive -Path C:\path\to\file\* -DestinationPath C:\path\to\archive.zip

Następnie, powiedzmy, że mamy folder z kilkoma różnymi typami plików (.doc, .txt, .jpg, itp.), ale chcemy skompresować tylko jeden typ. Możesz powiedzieć PowerShellowi, aby zarchiwizował je bez dotykania innych jawnie. Zapis polecenia wyglądałby następująco:

Compress-Archive -Path C:\path\to\file\*.jpg -DestinationPath C:\path\to\archive.zip

Uwaga: Podkatalogi i pliki folderu głównego nie są uwzględniane w archiwum przy tej metodzie.

Reklama

Na koniec, jeśli chcesz archiwum, które kompresuje tylko pliki w katalogu głównym i wszystkie jego podkatalogi – użyj symbolu wieloznacznego gwiazdka-kropka-gwiazdka (*.*), aby je zripować. Wyglądałoby to mniej więcej tak:

Compress-Archive -Path C:\path\to\file\*.* -DestinationPath C:\path\to\archive.zip

Uwaga: Podkatalogi i pliki katalogu głównego nie są uwzględniane w archiwum przy użyciu tej metody.

Nawet po zakończeniu archiwizacji można zaktualizować istniejący zzipowany plik przy użyciu parametru -Update. Pozwala on zastąpić starsze wersje plików w archiwum nowszymi o tych samych nazwach, a także dodać pliki, które zostały utworzone w katalogu głównym. Będzie to wyglądało mniej więcej tak:

Compress-Archive -Path C:\path\to\files -Update -DestinationPath C:\path\to\archive.zip

Jak rozpakować pliki za pomocą PowerShella

Oprócz możliwości zipowania plików i folderów, PowerShell posiada również możliwość rozpakowywania archiwów. Proces ten jest jeszcze prostszy niż ich kompresja, wystarczy plik źródłowy oraz miejsce docelowe dla danych gotowych do rozpakowania.

Reklama

Otwórz PowerShell i wpisz następujące polecenie, zastępując <PathToZipFile> i <PathToDestination> odpowiednio ścieżką do plików, które chcesz skompresować oraz nazwą i folderem, do którego chcesz, aby trafiły:

Expand-Archive -LiteralPath <PathToZipFile> -DestinationPath <PathToDestination>

Podany folder docelowy, do którego mają trafić pliki, zostanie wypełniony zawartością archiwum. Jeśli folder nie istniał przed rozpakowaniem, PowerShell utworzy folder i umieści w nim zawartość przed rozpakowaniem.

Domyślnie, jeśli pominiemy parametr -DestinationPath, PowerShell rozpakuje zawartość do bieżącego katalogu głównego i użyje nazwy pliku Zip do utworzenia nowego folderu.

W poprzednim przykładzie, jeśli pominiemy parametr -DestinationPath , PowerShell utworzy folder „Archiwum” w ścieżce „C:\u0026apos;” i wypakuje pliki z archiwum do tego folderu.

Reklama

Jeśli folder już istnieje w miejscu docelowym, PowerShell zwróci błąd podczas próby rozpakowania plików. Możesz jednak zmusić PowerShell do nadpisania danych nowymi za pomocą parametru -Force.

Powinieneś użyć parametru -Force tylko wtedy, gdy stare pliki nie są już potrzebne, ponieważ spowoduje to nieodwracalne zastąpienie plików na komputerze.

Brady Gavin
Brady Gavin jest zanurzony w technologii od 15 lat i napisał ponad 150 szczegółowych tutoriali i explainerów. Zajmował się wszystkim, od hacków w rejestrze Windows 10 po porady dotyczące przeglądarki Chrome. Brady uzyskał dyplom z informatyki w Camosun College w Victorii, BC. Read Full Bio „

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *