जवाबों:
DotNetZip आपको PowerShell से ऐसा करने की अनुमति देगा। यह एक-लाइनर नहीं है, लेकिन लाइब्रेरी आपको पॉवरशेल स्क्रिप्ट लिखने की अनुमति देगा जो आपको चाहिए।
आप COM इंटरफ़ेस का उपयोग भी कर सकते हैं, Windows PowerShell के साथ कंप्रेस फ़ाइलें देखें और फिर Windows Vista साइडबार गैजेट को पैकेज करें ।
"ज़िप पॉशशेल" या "अनजिप पॉवरशेल" को गुगली करने से भी उपयोगी परिणाम सामने आ सकते हैं।
यह है कि आप इसे बिना किसी बाहरी उपकरण के पॉवर्स से शुद्ध रूप से कैसे कर सकते हैं। यह वर्तमान कार्यशील निर्देशिका पर test.zip नामक फ़ाइल को खोल देता है:
$shell_app=new-object -com shell.application
$filename = "test.zip"
$zip_file = $shell_app.namespace((Get-Location).Path + "\$filename")
$destination = $shell_app.namespace((Get-Location).Path)
$destination.Copyhere($zip_file.items())
$destination.Copyhere($zip_file.items())
वास्तविक अनज़िपिंग करती है।
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()) }
अब .NET फ्रेमवर्क 4.5 में, एक ZipFile वर्ग है जिसे आप इस तरह से उपयोग कर सकते हैं:
[System.Reflection.Assembly]::LoadWithPartialName('System.IO.Compression.FileSystem')
[System.IO.Compression.ZipFile]::ExtractToDirectory($sourceFile, $targetFolder)
आप विशेष रूप से इसके लिए cmdlets वाले PowerShell सामुदायिक एक्सटेंशन (PSCX) की जांच करना चाह सकते हैं ।
मुझे पता है कि यह एक बहुत पुराना सवाल है, लेकिन मैंने अभी इसे ट्विटर पर जुड़ा हुआ देखा है कि मैं एक वर्तमान उत्तर दूंगा।
PowerShell 5, जो वर्तमान में विंडोज 10 पर या विंडोज मैनेजमेंट फ्रेमवर्क 5 प्रोडक्शन प्रीव्यू के माध्यम से उपलब्ध है , 'जिपिंग' और 'अनजिपिंग' के लिए दो बिल्ट-इन cmdlets के साथ आता है:
मुझे बस इंज़ीज़ बायनेरी का उपयोग करने का सबसे सरल समाधान मिल गया है जो मैंने वर्षों से उपयोग किया है और एक यूनिक्स वातावरण में उपयोग करता है।
PS> zip -9r ../test.zip *
PS> cd ..
PS> unzip -t test.zip Archive: test.zip
testing: LinqRepository/ OK
testing: LinqRepository/ApplicationService.cs OK
testing: LinqRepository/bin/ OK
...
No errors detected in compressed data of test.zip.
यह पाठ आउटपुट के चारों ओर एक पॉलीशेल रैपर लगाने के लिए स्पष्ट होगा, लेकिन व्यवहार में मुझे कभी भी इसकी आवश्यकता नहीं है कि मैंने परेशान नहीं किया है।
मुझे इन्फो- जिप (ज्यादातर जिप उपयोगिताओं में पाया जाने वाला जिप इंजन) और 7-जिप , एक और पसंदीदा है, जिसमें एक जीयूआई और कमांड लाइन जिप उपयोगिता दोनों हैं। इस बिंदु पर, कुछ अच्छे कमांड-लाइन उपयोगिताओं हैं जो अधिकांश पॉवरशेल कार्यों के लिए काम करेंगे।
कमांड लाइन उपयोगिताओं को चलाने के लिए कुछ तरकीबें हैं जो पॉवरशेल को ध्यान में रखकर नहीं बनाई गई थीं:
एक निष्पादन योग्य जो नाम में एक संख्या से शुरू होता है, उसे एक एम्परसैंड (&) के साथ प्रस्तुत करना।
और 7zip.exe
प्रत्येक टोकन को लपेटें, उपयोगिता कमांड लाइन से उद्धरणों में देखने की उम्मीद कर रही है।
& "c: \ path with space \ SomeCommand.exe" "/ पैरामीटर 2" "/ पैरामीटर 2" "पैरामीटर 2 का मान" "Value2` "एक उद्धरण के साथ"
इसे इस्तेमाल करे:
zip filename.zip (Get-ChildItem somepath\*)
या और भी:
zip filename.zip (Get-Content ListOfFiles.txt)
जेम्स होवेल मुझे आपका उत्तर पसंद है लेकिन मैंने इसे थोड़ा विस्तार दिया है
# Example
#unzip "myZip.zip" "C:\Users\me\Desktop" "c:\mylocation"
function unzip($fileName, $sourcePath, $destinationPath)
{
$shell = new-object -com shell.application
if (!(Test-Path "$sourcePath\$fileName"))
{
throw "$sourcePath\$fileName does not exist"
}
New-Item -ItemType Directory -Force -Path $destinationPath -WarningAction SilentlyContinue
$shell.namespace($destinationPath).copyhere($shell.namespace("$sourcePath\$fileName").items())
}
आयनिक दृष्टिकोण चट्टानें:
https://dotnetzip.codeplex.com/wikipage?title=PS-Examples
पासवर्ड, अन्य क्रिप्टो विधियों का समर्थन करता है, आदि।
मैंने एक PowerShell 2.0 संगत मॉड्यूल बनाया है, जो समकालिक तरीके से फ़ाइलों को ज़िप और अनज़िप करने के लिए देशी विंडोज ओएस कमांड का उपयोग करता है। यह विंडोज़ एक्सपी की तरह पुराने ओएस पर काम करता है, और इसके लिए .Net 4.5 या किसी अन्य बाहरी टूल की आवश्यकता नहीं होती है। कार्य भी स्क्रिप्ट निष्पादन को ब्लॉक करेगा जब तक कि फ़ाइलों को सभी ज़िपित / अनज़िप नहीं किया गया हो। आप मेरे ब्लॉग पर अधिक जानकारी और मॉड्यूल पा सकते हैं ।