2012-03-01 13 views
5

szukam równoważnego polecenia PowerShell dla:Jednoliniowy folder skompresowany w PowerShell?

tar -zcvf tar-archive-name.tar.gz source-folder 

Czy taka jedna wkładka istnieć, który tworzy plik zip z folderu rekursywnie dodawanie zawartości source-folder, które nie wymagają 3rd biblioteka imprezowa jak 7-zip?

Odpowiedz

4

Począwszy Powershell 5, można użyć wbudowanej Compress-Archive polecenia:

Compress-Archive -Path source-folder -DestinationPath archive-name.zip 

Jeśli używasz PowerShell wcześniejszej wersji 5, nie ma rozwiązania jedna wkładka bez trzeciego programu partii, takich jak 7-zip . Można jednak wykorzystać wbudowane funkcje kompresowania w Eksploratorze Windows, które można wyświetlić za pomocą funkcji COM Shell object, aby utworzyć własną funkcję Power Shell. This page outlines the details o tym, jak to zrobić.

+0

Czy możesz pokazać 7- zip sloution. Dziękujemy –

+1

@ F505, możesz teraz zrobić to bezpośrednio w PS, zobacz zaktualizowaną odpowiedź. – zdan

+0

@ F505 Próbujesz wyodrębnić z archiwum, a nie tworzyć. Nie sądzę, że wbudowane funkcje archiwizacji PowerShell obsługują gzip. Spróbuj zadać osobne pytanie. – zdan

4

W rzeczywistości istnieje jednoliniowy ekwiwalent, który tworzy archiwa zip, a istnieje nawet jednolinijkowy odpowiednik, czyli plik tar. Pierwszym miejscem, w którym powinieneś szukać takiej funkcji bibliotecznej, jest PowerShell Community Extensions, zapewniając bogactwo wysokiej jakości rozszerzeń bibliotecznych PowerShell. Niestety, wyszukiwanie w Internecie konkretnego elementu, na przykład funkcja tworzenia zip, prawdopodobnie nie przyniesie żadnego efektu, ponieważ nigdzie na stronie lub w dokumentacji nie zawiera ona listy poleceń i funkcji! Aby dowiedzieć się, musisz zainstalować bibliotekę, a następnie wykonaj help about_pscx. Przesiewanie, że tutaj jest to, co znajdziesz odpowiednie do twojego pytania:

Write-Zip 
    Create ZIP format archive files from pipline or parameter input. 
Write-GZip 
    Create GNU ZIP (GZIP) format files from pipeline or parameter input. 
Write-Tar 
    Create Tape Archive (TAR) format files from pipeline or parameter input. 

i tu, z ich osadzonych przykłady są, jak można z nich korzystać:

PS> dir c:\logs\ -rec -inc *.log | write-zip -level 9 -removeoriginal 
PS> dir c:\logs\ -rec -inc *.log | write-tar -output logs.tar | write-gzip -level 9 | move-item c:\archived_logs\ 
+1

Te funkcje są obecnie przerywane w systemie PSCX 2.1 i nowszym. Brak poprawki na czas naprawy. – Encryption