পাওয়ারশেলের ফাইলগুলি জিপ / আনজিপ কীভাবে করবেন?


উত্তর:


21

ডটনেটজিপ আপনাকে পাওয়ারশেল থেকে এটি করার অনুমতি দেবে। এটি ওয়ান-লাইনার নয়, লাইব্রেরিটি আপনাকে আপনার প্রয়োজনীয় পাওয়ারশেল স্ক্রিপ্টটি লেখার অনুমতি দেবে।

আপনি সিওএম ইন্টারফেসও ব্যবহার করতে পারেন, উইন্ডোজ পাওয়ারশেলের সাথে ফাইলগুলি সংক্ষেপণ দেখুন তারপরে একটি উইন্ডোজ ভিস্তার সাইডবার গ্যাজেটটি প্যাকেজ করুন

গুগলিং "জিপ পাওয়ারশেল" বা "আনজিপ পাওয়ারশেল" কার্যকর ফলস্বরূপ হতে পারে।


+1 লিঙ্কযুক্ত নিবন্ধটিতে সর্বাধিক
উত্সাহিত

5
গুগল অনুসন্ধানের পরামর্শ দেওয়ার জন্য -1। "আনজিপ পাওয়ারশেল"
মেশিন

154

কোনও বাহ্যিক সরঞ্জাম ছাড়াই আপনি নিখাদভাবে পাওয়ারশেল থেকে এটি করতে পারেন। এটি বর্তমান ওয়ার্কিং ডিরেক্টরিতে টেস্ট.জিপ নামে একটি ফাইল আনজিপ করে:

$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())

26
বিদ্যমান ফাইলগুলি ওভাররাইট করার জন্য $ গন্তব্য.কপিয়ার (ip zip_file.items (), 0x10) ব্যবহার করুন। 0x4 ডায়লগ বাক্সটি লুকায় এবং 0x14 এগুলিকে সংযুক্ত করে ওভাররাইট করে এবং ডায়ালগটি আড়াল করে।
পিটার

3
লাইনটি $destination.Copyhere($zip_file.items())প্রকৃত আনজিপিং করে।
জোনাথন অ্যালেন

2
আপনি চাইলে উপরের অংশটিকে কোনও ফাংশনে পার্সেল করতে পারেন: 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()) }
জেমস হলওল

6
এটি গ্রহণযোগ্য উত্তর হওয়া উচিত।
টগবার্ক

2
এটি আমার পক্ষে ব্যর্থ হয় যখন জিপ ফাইলটিতে কেবল একটি ফোল্ডার থাকে (আইটেমগুলি খালি থাকে)
জেমস উলফেন্ডেন

56

নেট। ফ্রেমওয়ার্ক ৪.৪-তে এখন একটি জিপফিল ক্লাস রয়েছে যা আপনি এটির মতো ব্যবহার করতে পারেন:

[System.Reflection.Assembly]::LoadWithPartialName('System.IO.Compression.FileSystem')
[System.IO.Compression.ZipFile]::ExtractToDirectory($sourceFile, $targetFolder)

1
এই হবে মহান যদি ExtractToDirectory করার জন্য একটি সহজ পদ্ধতি এবং সমস্ত বিদ্যমান ফাইল মুছে করার জন্য একটি বিকল্প ছিল হও।
জেমস ডান

1
এটি .NET 4.5 নিয়ে কাজ করে। আপনার অবশ্য পাওয়ারশেল ভি 3 এরও দরকার নেই।
ডালসফট

3
অ্যাড-টাইপ সহ অ্যাসেম্বলিটি লোড করুন, উদাহরণস্বরূপ: অ্যাড-টাইপ -অ্যাসবেশননেম সিস্টেম.আইও.কম্পেশন.ফায়াল সিস্টেম
মাইক

2
@ জেমসডুন - আপনার যদি অন্য ফাইলগুলি সংরক্ষণ করার প্রয়োজন না থাকে তবে 'অপসারণ-আইটেম -Recurse $ টার্গেটফোল্ডার' ব্যবহার করতে পারেন। অন্যথায়, আপনি যা করতে চান তা করা যেতে পারে, তবে এটি অ-তুচ্ছ হবে। আপনার পড়ার জন্য জিপটি খুলতে হবে এবং তারপরে জিপটি হাঁটতে হবে, কোনও পূর্ববর্তী লক্ষ্য বস্তুটি মুছে ফেলা এবং নতুনটি আনপ্যাক করা উচিত। আমার জন্য ভাগ্যবান, সহজ সমাধান কাজ করে। ;)
মাইক 2

3
সতর্ক হতে হবে যে আপেক্ষিক ফাইলের অবস্থানগুলি .NET বর্তমান ডিরেক্টরি ব্যবহার করবে , পাওয়ারশেলটি নয়এখানে দেখুন । এটি কেবল (Resolve-Path $someDir).Pathযুক্তিগুলির চেয়ে ভাল ।
jpmc26

18

আপনি পাওয়ারশেল সম্প্রদায় সম্প্রসারণ (পিএসসিএক্স) যা বিশেষত এর জন্য সেন্টিমিডলেট রয়েছে তা পরীক্ষা করে দেখতে চাইতে পারেন ।


1
+1 পিএসসিএক্স হ'ল অ্যাড-অন সিএমডিলেটগুলির একটি দুর্দান্ত সেট - আমি কেবল চাই যে আমি কোনটি পছন্দ করি এবং কোনটি আমি চাই না তা আরও বেছে নিতে পারি। আমার
পাওয়ারশেল ইভেন্টে

আমি এটি পেরিয়ে এসেছি কারণ আমি যদি কিছু সহকর্মীর পক্ষে পারি তবে আমি পিএসসিএক্স ইনস্টলেশনটি স্বয়ংক্রিয় করতে চাই। আমি কী ধরণের সমস্যা নিয়ে
চলেছি

16

আমি জানি এটি একটি খুব পুরানো প্রশ্ন, তবে আমি এটি টুইটারে লিঙ্কিত দেখেছি অনুভূত হয়েছে যে আমি একটি বর্তমান উত্তর পোস্ট করব।

উইন্ডোজ 10 এ বা উইন্ডোজ ম্যানেজমেন্ট ফ্রেমওয়ার্ক 5 প্রোডাকশন প্রিভিউর মাধ্যমে বর্তমানে পাওয়ারশেল 5 পাওয়া যায়, 'জিপিং' এবং 'আনজিপিং' এর জন্য দুটি বিল্ট-ইন সেমিডলেট রয়েছে:


3
এটা একটা হয় ভাল পুরাতন প্রশ্ন নতুন তথ্য প্রদান করতে জিনিস। ;) +1
jpmc26

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.

পাঠ্য আউটপুটটির চারপাশে একটি পাওয়ারশেল মোড়ক স্থাপন করা সোজা হবে তবে বাস্তবে আমার কখনই প্রয়োজন হয় না তাই আমি বিরক্ত করিনি।

http://www.info-zip.org/


5

আমি ইনফো-জিপও পছন্দ করি (বেশিরভাগ জিপ ইউটিলিটিতে পাওয়া জিপ ইঞ্জিন) এবং --জিপ , অন্য প্রিয় যা জিইআইআই এবং কমান্ড লাইন জিপ ইউটিলিটি উভয়ই পছন্দ করে। মূল বিষয় হচ্ছে, কিছু ভাল কমান্ড-লাইন ইউটিলিটি রয়েছে যা বেশিরভাগ পাওয়ারশেল কাজের জন্য কাজ করবে।

কমান্ড লাইন ইউটিলিটিগুলি চালনার জন্য কিছু কৌশল রয়েছে যা পাওয়ারশেলের কথা মাথায় রেখে নির্মিত হয়নি:

  • একটি এক্সিকিউটেবল চালানো যা নামের সাথে একটি নম্বর দিয়ে শুরু হয়, এটি একটি এম্পারস্যান্ড (&) দিয়ে উপস্থাপন করুন।

    & 7zip.exe

  • প্রতিটি টোকেন মোড়ানো, ইউটিলিটি উদ্ধৃতিতে কমান্ড লাইন থেকে দেখার প্রত্যাশা করে।

    & "সি: space স্থান সহ পথ \ সামকোমন্ড.এক্সে" "/ পরামিতি 2" "/ পরামিতি 2" "পরামিতি 2 এর মান" "মান 2 a" একটি উদ্ধৃতি সহ "

এটা চেষ্টা কর:

zip filename.zip (Get-ChildItem somepath\*)

অথবা এমনকি:

zip filename.zip (Get-Content ListOfFiles.txt)

2

জেমস হলওয়েল আপনার উত্তরটি আমি পছন্দ করি তবে আমি এটি কিছুটা প্রসারিত করেছি

# 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()) 
}

0

WinRAR যুক্তি স্বীকার করে সিএমডি মোডে কাজ করতে পারে



0

আমি একটি পাওয়ারশেল ২.০ সামঞ্জস্যপূর্ণ মডিউল তৈরি করেছি যা সিঙ্ক্রোনাস পদ্ধতিতে ফাইলগুলি জিপ এবং আনজিপ করতে নেটিজ উইন্ডোজ ওএস কমান্ড ব্যবহার করে। এটি উইন্ডোজ এক্সপির মতো পুরানো ওএসগুলিতে কাজ করে এবং নেট .৪.৪ বা অন্য কোনও বাহ্যিক সরঞ্জামের প্রয়োজন হয় না। ফাইলগুলি সমস্ত জিপ / আনজিপ না করা পর্যন্ত এই ফাংশনগুলি স্ক্রিপ্ট সম্পাদনাকেও ব্লক করে দেবে। আপনি আমার ব্লগে আরও তথ্য এবং মডিউলটি এখানে পেতে পারেন

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.