Czy w programie PowerShell jest dostępny jeden wiersz, który będzie spakować / rozpakować pliki (* .zip)?
105
Czy w programie PowerShell jest dostępny jeden wiersz, który będzie spakować / rozpakować pliki (* .zip)?
Odpowiedzi:
DotNetZip pozwoli ci to zrobić z PowerShell. Nie jest to jednowierszowa, ale biblioteka pozwoli Ci napisać potrzebny skrypt PowerShell.
Możesz także użyć interfejsu COM, zobacz Kompresowanie plików za pomocą Windows PowerShell, a następnie zapakowanie gadżetu paska bocznego systemu Windows Vista .
Googling „zip powershell” lub „unzip powershell” może również przynieść przydatne wyniki.
źródło
W ten sposób możesz to zrobić wyłącznie z Powershell bez żadnych zewnętrznych narzędzi. To rozpakowuje plik o nazwie test.zip do bieżącego katalogu roboczego:
źródło
$destination.Copyhere($zip_file.items())
faktycznie rozpakowuje.function unzip($filename) { if (!(test-path $filename)) { throw "$filename does not exist" } $shell = new-object -com shell.application $shell.namespace($pwd.path).copyhere($shell.namespace((join-path $pwd $filename)).items()) }
Teraz w .NET Framework 4.5 dostępna jest klasa ZipFile , której można użyć w następujący sposób:
źródło
(Resolve-Path $someDir).Path
z argumentami.Warto sprawdzić rozszerzenia społeczności PowerShell (PSCX), które mają specjalnie do tego przeznaczone polecenia cmdlet.
źródło
Wiem, że to bardzo stare pytanie, ale właśnie zobaczyłem, że jest to link na Twitterze i pomyślałem, że opublikuję aktualną odpowiedź.
PowerShell 5, obecnie dostępny w systemie Windows 10 lub za pośrednictwem wersji zapoznawczej Windows Management Framework 5 , zawiera dwa wbudowane polecenia cmdlet do „kompresowania” i „rozpakowywania”:
źródło
Znajduję najprostsze rozwiązanie, aby po prostu użyć plików binarnych infozip, z których korzystałem od lat i które używam w środowisku UNIX.
Łatwo byłoby umieścić otoczkę PowerShell wokół tekstu wyjściowego, ale w praktyce nigdy tego nie potrzebuję, więc nie zawracałem sobie głowy.
http://www.info-zip.org/
źródło
Lubię też Info-ZIP (silnik Zip występujący w większości innych programów Zip) i 7-Zip , kolejny ulubiony, który ma zarówno GUI, jak i narzędzie Zip z linii poleceń. Chodzi o to, że istnieją pewne dobre narzędzia wiersza polecenia, które będą działać dla większości zadań PowerShell.
Istnieje kilka sztuczek w uruchamianiu narzędzi wiersza poleceń, które nie zostały zbudowane z myślą o PowerShell:
Uruchamianie pliku wykonywalnego, który zaczyna się od numeru w nazwie, poprzedza go znakiem „Ampersand” (&).
I 7zip.exe
Zawiń każdy token, którego narzędzie oczekuje w wierszu poleceń, w cudzysłowie.
& „c: \ ścieżka ze spacją \ SomeCommand.exe” ”/ parametr2” „/ parametr2” „Wartość parametru2” „Wartość2” „z cytatem”
Spróbuj tego:
Lub nawet:
źródło
James Holwell Podoba mi się twoja odpowiedź, ale trochę ją rozwinąłem
źródło
WinRAR może pracować w trybie CMD akceptując argumenty
źródło
Podejście jonowe kołysze:
https://dotnetzip.codeplex.com/wikipage?title=PS-Examples
obsługuje hasła, inne metody kryptograficzne itp.
źródło
Utworzyłem moduł kompatybilny z PowerShell 2.0, który używa natywnych poleceń systemu operacyjnego Windows do synchronizowania i rozpakowywania plików. Działa to na starszych systemach operacyjnych, takich jak Windows XP, i nie wymaga .Net 4.5 ani żadnych innych narzędzi zewnętrznych. Funkcje będą również blokować wykonywanie skryptu, dopóki wszystkie pliki nie zostaną spakowane / rozpakowane. Więcej informacji i moduł można znaleźć na moim blogu tutaj .
źródło