Jak spakować (i rozpakować) pliki za pomocą PowerShell

Format pliku ZIP zmniejsza rozmiar plików, kompresując je do jednego pliku. Ten proces oszczędza miejsce na dysku, szyfruje dane i ułatwia udostępnianie plików innym osobom. Oto jak spakować i rozpakować pliki za pomocą programu PowerShell.

Jak spakować pliki za pomocą PowerShell

Zacznijmy od skompresowania niektórych plików do archiwum plików ZIP za pomocą polecenia cmdlet Compress-Archive. Pobiera ścieżkę do dowolnych plików, które chcesz skompresować – wiele plików jest oddzielonych przecinkami – i archiwizuje je w określonym przez Ciebie miejscu docelowym.

Najpierw otwórz PowerShell, wyszukując go z menu Start, a następnie wpisując następujące polecenie, zastępując i ze ścieżką do plików, które chcesz skompresować oraz odpowiednio nazwą i folderem, do którego chcesz przejść:

Compress-Archive -LiteralPath  -DestinationPath 

Spakuj kilka plików w PowerShell.

Podając ścieżkę docelową, nadaj plikowi archiwum nazwę. W przeciwnym razie program PowerShell zapisze go jako „.zip” w miejscu określonym przez użytkownika.

Uwaga: cudzysłowy wokół ścieżki są konieczne tylko wtedy, gdy ścieżka pliku zawiera spację.

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

Compress-Archive -LiteralPath  -DestinationPath 

Spakuj cały folder i całą jego zawartość.

W poprzednim przykładzie umieściliśmy ścieżkę do katalogu zawierającego wiele plików i folderów bez określania pojedynczych plików. PowerShell pobiera wszystko z katalogu głównego i kompresuje go, podfoldery i wszystko.

Polecenie cmdlet Compress-Archive umożliwia użycie znaku wieloznacznego

aby jeszcze bardziej rozszerzyć funkcjonalność. Używając znaku, możesz wykluczyć katalog główny, skompresować tylko pliki w katalogu lub wybrać wszystkie pliki określonego typu. Aby użyć symbolu wieloznacznego z Compress-Archive, należy zamiast tego użyć parametru -Path, ponieważ -LiteralPath ich nie akceptuje.

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

Powyżej omówiliśmy, jak uwzględnić katalog główny i wszystkie jego pliki i podkatalogi podczas tworzenia pliku archiwum.  Jeśli jednak chcesz wykluczyć folder 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 mówisz PowerShell, aby pobierał tylko zawartość katalogu głównego. Powinien wyglądać mniej więcej tak:

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

Spakuj całą zawartość folderu, bez samego folderu głównego.

Następnie załóżmy, że masz folder z wieloma różnymi typami plików (.doc, .txt, .jpg itp.), Ale chcesz skompresować tylko jeden typ. Możesz powiedzieć PowerShell, aby zarchiwizował je bez bezpośredniego dotykania innych. Notacja polecenia wyglądałaby następująco:

Spakuj tylko określone typy plików z folderu.

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

Uwaga: podkatalogi i pliki folderu głównego nie są uwzględniane w archiwum za pomocą tej metody.

Wreszcie, jeśli chcesz archiwum, które kompresuje tylko pliki w katalogu głównym – i wszystkich jego podkatalogach – możesz użyć symbolu wieloznacznego gwiazda-kropka-gwiazda (*. *), Aby je spakować. Wyglądałoby to mniej więcej tak:

Spakuj tylko pliki z folderu głównego za pomocą widlcard star-dot-star (*. *).

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

Uwaga: podkatalogi i pliki folderu głównego nie są uwzględniane w archiwum za pomocą tej metody.

Nawet po zakończeniu archiwizacji można zaktualizować istniejący spakowany plik za pomocą parametru -Update. Pozwala zastąpić starsze wersje plików w archiwum nowszymi, które mają te same nazwy, a także dodać pliki, które zostały utworzone w katalogu głównym. Będzie wyglądać mniej więcej tak:

Zaktualizuj już istniejący plik zip przy użyciu parametru -Update.

Jak rozpakować pliki za pomocą PowerShell Oprócz możliwości spakowania plików i folderów, PowerShell ma możliwość rozpakowywania archiwów. Proces jest jeszcze łatwiejszy niż ich kompresja; wszystko, czego potrzebujesz, to plik źródłowy i miejsce docelowe dla danych gotowych do rozpakowania. Otwórz PowerShell i wpisz następujące polecenie, zastępując

Expand-Archive -LiteralPath  -DestinationPath 

i

ze ścieżką do plików, które chcesz skompresować oraz odpowiednio nazwą i folderem, do którego chcesz przejść:

Rozpakuj archiwum za pomocą polecenia cmdlet Expand-Archive.

Folder docelowy określony do wyodrębnienia plików zostanie wypełniony zawartością archiwum. Jeśli folder nie istniał przed rozpakowaniem, program PowerShell utworzy folder i umieści w nim zawartość przed rozpakowaniem.

Domyślnie, jeśli pominiesz 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 opuścimy -DestinationPath, PowerShell utworzy folder „Archive” w ścieżce „C: Usersbrady” i wypakuje pliki z archiwum do folderu.

Jeśli pominiesz parametr -DestinationPath, program PowerShell wyodrębni plik zip do aktualnie wybranego katalogu.

Jeśli folder już istnieje w miejscu docelowym, program PowerShell zwróci błąd podczas próby rozpakowania plików. Można jednak zmusić program PowerShell do zastąpienia danych nowymi, używając parametru -Force.

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