উত্তর:
ডটনেটজিপ আপনাকে পাওয়ারশেল থেকে এটি করার অনুমতি দেবে। এটি ওয়ান-লাইনার নয়, লাইব্রেরিটি আপনাকে আপনার প্রয়োজনীয় পাওয়ারশেল স্ক্রিপ্টটি লেখার অনুমতি দেবে।
আপনি সিওএম ইন্টারফেসও ব্যবহার করতে পারেন, উইন্ডোজ পাওয়ারশেলের সাথে ফাইলগুলি সংক্ষেপণ দেখুন তারপরে একটি উইন্ডোজ ভিস্তার সাইডবার গ্যাজেটটি প্যাকেজ করুন ।
গুগলিং "জিপ পাওয়ারশেল" বা "আনজিপ পাওয়ারশেল" কার্যকর ফলস্বরূপ হতে পারে।
কোনও বাহ্যিক সরঞ্জাম ছাড়াই আপনি নিখাদভাবে পাওয়ারশেল থেকে এটি করতে পারেন। এটি বর্তমান ওয়ার্কিং ডিরেক্টরিতে টেস্ট.জিপ নামে একটি ফাইল আনজিপ করে:
$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()) }
নেট। ফ্রেমওয়ার্ক ৪.৪-তে এখন একটি জিপফিল ক্লাস রয়েছে যা আপনি এটির মতো ব্যবহার করতে পারেন:
[System.Reflection.Assembly]::LoadWithPartialName('System.IO.Compression.FileSystem')
[System.IO.Compression.ZipFile]::ExtractToDirectory($sourceFile, $targetFolder)
আপনি পাওয়ারশেল সম্প্রদায় সম্প্রসারণ (পিএসসিএক্স) যা বিশেষত এর জন্য সেন্টিমিডলেট রয়েছে তা পরীক্ষা করে দেখতে চাইতে পারেন ।
আমি জানি এটি একটি খুব পুরানো প্রশ্ন, তবে আমি এটি টুইটারে লিঙ্কিত দেখেছি অনুভূত হয়েছে যে আমি একটি বর্তমান উত্তর পোস্ট করব।
উইন্ডোজ 10 এ বা উইন্ডোজ ম্যানেজমেন্ট ফ্রেমওয়ার্ক 5 প্রোডাকশন প্রিভিউর মাধ্যমে বর্তমানে পাওয়ারশেল 5 পাওয়া যায়, 'জিপিং' এবং 'আনজিপিং' এর জন্য দুটি বিল্ট-ইন সেমিডলেট রয়েছে:
আমি কেবল ইনফোজিপ বাইনারিগুলি ব্যবহার করার সহজ সমাধান খুঁজে পাই যা আমি বহু বছর ধরে ব্যবহার করেছি এবং ইউএনআইএক্স পরিবেশে ব্যবহার করছি।
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.
পাঠ্য আউটপুটটির চারপাশে একটি পাওয়ারশেল মোড়ক স্থাপন করা সোজা হবে তবে বাস্তবে আমার কখনই প্রয়োজন হয় না তাই আমি বিরক্ত করিনি।
আমি ইনফো-জিপও পছন্দ করি (বেশিরভাগ জিপ ইউটিলিটিতে পাওয়া জিপ ইঞ্জিন) এবং --জিপ , অন্য প্রিয় যা জিইআইআই এবং কমান্ড লাইন জিপ ইউটিলিটি উভয়ই পছন্দ করে। মূল বিষয় হচ্ছে, কিছু ভাল কমান্ড-লাইন ইউটিলিটি রয়েছে যা বেশিরভাগ পাওয়ারশেল কাজের জন্য কাজ করবে।
কমান্ড লাইন ইউটিলিটিগুলি চালনার জন্য কিছু কৌশল রয়েছে যা পাওয়ারশেলের কথা মাথায় রেখে নির্মিত হয়নি:
একটি এক্সিকিউটেবল চালানো যা নামের সাথে একটি নম্বর দিয়ে শুরু হয়, এটি একটি এম্পারস্যান্ড (&) দিয়ে উপস্থাপন করুন।
& 7zip.exe
প্রতিটি টোকেন মোড়ানো, ইউটিলিটি উদ্ধৃতিতে কমান্ড লাইন থেকে দেখার প্রত্যাশা করে।
& "সি: space স্থান সহ পথ \ সামকোমন্ড.এক্সে" "/ পরামিতি 2" "/ পরামিতি 2" "পরামিতি 2 এর মান" "মান 2 a" একটি উদ্ধৃতি সহ "
এটা চেষ্টা কর:
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
পাসওয়ার্ড, অন্যান্য ক্রিপ্টো পদ্ধতি ইত্যাদি সমর্থন করে
আমি একটি পাওয়ারশেল ২.০ সামঞ্জস্যপূর্ণ মডিউল তৈরি করেছি যা সিঙ্ক্রোনাস পদ্ধতিতে ফাইলগুলি জিপ এবং আনজিপ করতে নেটিজ উইন্ডোজ ওএস কমান্ড ব্যবহার করে। এটি উইন্ডোজ এক্সপির মতো পুরানো ওএসগুলিতে কাজ করে এবং নেট .৪.৪ বা অন্য কোনও বাহ্যিক সরঞ্জামের প্রয়োজন হয় না। ফাইলগুলি সমস্ত জিপ / আনজিপ না করা পর্যন্ত এই ফাংশনগুলি স্ক্রিপ্ট সম্পাদনাকেও ব্লক করে দেবে। আপনি আমার ব্লগে আরও তথ্য এবং মডিউলটি এখানে পেতে পারেন ।