- 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>
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.
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.
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.
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.
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 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 „