Articles

Używanie PowerShella do tworzenia archiwów ZIP i rozpakowywania plików

Posted on

Czasami przydatne może być programowe tworzenie archiwów zip lub rozpakowywanie plików z istniejących archiwów. Windows PowerShell 5.0 dodał dwa cmdlety, które to umożliwiają. Narzędzie Compress-Archive umożliwia tworzenie nowych archiwów z folderów lub pojedynczych plików oraz dodawanie plików do archiwów; Extract-Archive służy do rozpakowywania plików.

Jeśli nie macie jeszcze zainstalowanego PowerShella 5.0 lub nowszej, możesz pobrać najnowszą wersję Windows Management Framework ze strony Microsoftu tutaj.

Używanie PowerShella do tworzenia plików zip

Zacznijmy od użycia PowerShella do skompresowania plików w nowym archiwum zip. Wystarczy użyć parametru -Path, aby określić folder, który ma zostać skompresowany oraz parametru -DestinationPath, aby określić nazwę archiwum, które ma zostać utworzone. Poniższe polecenie zapakuje folder Invoices w głównym katalogu C i utworzy archiwum o nazwie Invoices.zip w folderze Archives:

Compress-Archive -Path C:\Invoices -DestinationPath C:\Archives\Invoices

Alternatywnie moglibyśmy zapakować pliki w folderze Invoices pojedynczo, używając -LiteralPath zamiast -Path. To polecenie tworzy archiwum zawierające tylko dwa pliki wymienione w parametrze -LiteralPath:

Compress-Archive -LiteralPath C:\ Invoices\File1.txt, C:\Invoices\File2.txt -DestinationPath C:\Archives\Invoices -Force

Zauważ, że dodałem parametr -Force, aby nadpisać archiwum utworzone za pomocą pierwszego polecenia. Bez parametru -Force nie można nadpisać istniejących archiwów, a PowerShell wyświetli monit o dodanie plików do archiwum.

Aby dodać pliki do archiwum, należy użyć parametru -Update. Poniższe polecenie dodaje wszystkie pliki w folderze Invoices do mojego istniejącego archiwum Invoices.zip:

Compress-Archive -Path C:\Invoices\* -Update -DestinationPath C:\Archives\Invoices

Opcjonalnie można użyć parametru -CompressionLevel z jedną z trzech wartości: Optimal, NoCompression lub Fastest. Parametr Optimal jest ustawieniem domyślnym, jeśli nie jest ustawiony parametr -CompressionLevel; wykorzystuje on najlepszą dostępną kompresję, ale może to trwać dłużej niż przy użyciu Fastest. Aby utworzyć archiwum bez kompresji, należy użyć wartości NoCompression.

Używanie PowerShella do rozpakowywania plików

Wyodrębnianie plików z archiwum jest jeszcze prostsze niż jego tworzenie. Wystarczy podać nazwę archiwum i folder docelowy dla rozpakowanych plików. Poniższe polecenie wyodrębnia zawartość archiwum Invoices.zip do folderu o nazwie InvoicesUnzipped przy użyciu polecenia cmdlet Expand-Archive.

Expand-Archive -LiteralPath C:\Archives\Invoices.Zip -DestinationPath C:\ InvoicesUnzipped

Folder, do którego chcesz rozpakować pliki, nie musi istnieć; narzędzie Expand-Archive automatycznie utworzy folder w razie potrzeby. Ale jeśli pliki, które chcesz rozpakować już istnieją w folderze docelowym, Expand-Archive zwróci błąd. Można nadpisać pliki w folderze docelowym, dodając parametr -Force do polecenia.

Konsultant IT i autor specjalizujący się w technologiach zarządzania i bezpieczeństwa. Russell ma ponad 15 lat doświadczenia w IT, jest autorem książki na temat bezpieczeństwa systemu Windows, a także współautorem tekstu do serii Microsoft’s Official Academic Course (MOAC).

Dodaj komentarz

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