প্রশ্ন Powershell মধ্যে ফাইল জিপ / আনজিপ কিভাবে?


PowerShell এ ফাইলগুলি (* .zip) জিপ / আনজিপ করবে এমন একটি এক-লাইনার আছে কি?


103
2018-06-03 15:57


উত্স


সম্পর্কিত: সার্ভার কোর মধ্যে পিএস সঙ্গে আনজিপ - Ruben Bartelink


উত্তর:


DotNetZip আপনি PowerShell থেকে এটি করার অনুমতি দেবে। এটি একটি এক-মাছ ধরার নৌকা নয়, তবে লাইব্রেরি আপনাকে আপনার পাওয়ারশেল স্ক্রিপ্টটি লিখতে অনুমতি দেবে।

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

Googling "জিপ powershell" বা "unzip powerhell" এছাড়াও দরকারী ফলাফল চালু হতে পারে।


21
2018-06-03 16:02



+1 লিংক নিবন্ধটি সবচেয়ে উর্ধ্বগামী উত্তর অসদৃশ দরকারী টাস্ক আছে - Ruben Bartelink
-1 গুগল অনুসন্ধানের পরামর্শ দেওয়ার জন্য। এটি একটি শীর্ষস্থানীয় স্ট্যাক এক্সচেঞ্জ ফলাফল যা Google অনুসন্ধানে "আনজিপ পাওয়ারশেল" - machine yearning


এইভাবে আপনি Powershell থেকে কোন বহিরাগত সরঞ্জাম ছাড়া এটি সম্পূর্ণভাবে করতে পারেন কিভাবে। এটি বর্তমান কাজ ডিরেক্টরিতে test.zip নামক একটি ফাইল unzips:

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

154
2017-11-14 01:36



$ destination.Copyhere ব্যবহার করুন ($ zip_file.items (), 0x10) বিদ্যমান ফাইল overwriting জন্য। 0x4 ডায়ালগ বক্সটি লুকিয়ে রাখে এবং 0x14 এগুলি সংহত করে এবং ডায়ালগটি লুকিয়ে রাখে। - Peter
লাইন $destination.Copyhere($zip_file.items()) প্রকৃত unziping না। - Jonathan Allen
আপনি যদি চেয়েছিলেন তবে উপরের ফাংশনটিতে পার্সেলটি পার্সেল করতে পারেন: 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()) } - James Holwell
এই গ্রহণযোগ্য উত্তর হতে হবে। - tugberk
জিপ ফাইলে শুধু একটি ফোল্ডার থাকে (এটি খালি থাকে) যখন এটি আমার জন্য ব্যর্থ হয় - James Woolfenden


এখন .NET Framework 4.5 এ একটি আছে জিপ ফাইল আপনি এই মত ব্যবহার করতে পারেন যে ক্লাস:

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

56
2017-12-30 17:46



এটা স্পষ্টভাবে কাজ - আমি 400 জিপ ফাইল নিষ্কাশন করতে এটি ব্যবহার। আমি নিশ্চিত হব যে আমার এখানে 4.5 নেই, তবে এটি Microsoft.NET এর অধীনে প্রদর্শিত হয় না। - GalacticCowboy
এই would ExtractToDirectory এবং সমস্ত বিদ্যমান ফাইলগুলি ওভাররাইট করার বিকল্পের একটি সহজ পদ্ধতি থাকলে মহান হও। - James Dunne
অ্যাড-টাইপ সহ সমাবেশটি লোড করুন, উদাহরণস্বরূপ: অ্যাড-টাইপ-এএসপ্লাইনামনাম সিস্টেম.IO.Compression.FileSystem - Mike
@ জেমসডুনে - যদি আপনার কাছে অন্যান্য ফাইল না থাকে তবে আপনাকে সংরক্ষণ করতে হবে, 'Remove-Item -Recurse $ TargetFolder' ব্যবহার করতে পারে। অন্যথায়, আপনি যা করতে চান তা করা যেতে পারে, কিন্তু এটি অ-তুচ্ছ হবে। আপনি পড়ার জন্য জিপটি খুলতে হবে এবং তারপরে জিপটি চালাবেন, পূর্ববর্তী লক্ষ্যবস্তুটি মুছে ফেলবেন এবং নতুনটিকে আনপ্যাকিং করবেন। আমার জন্য ভাগ্যবান, সহজ সমাধান কাজ করে। ;) - Mike
সতর্ক থাকুন যে আপেক্ষিক ফাইল অবস্থান ব্যবহার করা হবে .NET বর্তমান ডিরেক্টরি, না পাওয়ারশেল এক। দেখ এখানে। এটা সম্ভবত শুধু ভাল (Resolve-Path $someDir).Path আর্গুমেন্ট। - jpmc26


আপনি চেক আউট করতে পারেন পাওয়ারশেল কমিউনিটি এক্সটেনশানস (পিএসসিএক্স) বিশেষভাবে এই জন্য cmdlets যা।


18
2018-06-03 15:59



+1 পিএসসিএক্স অ্যাড-অন সিএমডিএলেটস এর একটি দুর্দান্ত সেট - আমি শুধু চাই যে আমি পছন্দ করতে চাই এবং আরো যা পছন্দ করি তা চয়ন করতে এবং যা আমি না। মনে হচ্ছে আমার পাওয়ারশেল ইনস্ট্যান্সে পুরোটা পরিবর্তন হচ্ছে .... - marc_s
আমি এই জুড়ে এসেছি কারণ আমি কিছু সহকর্মীদের জন্য যদি আমি আসলেই পিএসসিএক্স ইনস্টলেশন স্বয়ংক্রিয়ভাবে করতে চাই। এখন আমি কী ধরনের সমস্যা চালাচ্ছি তা দেখতে চেষ্টা করছি - jcolebrand


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

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


14
2017-10-17 20:59



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


আমি কেবলমাত্র ইনফোজিপ বাইনারি ব্যবহার করার জন্য সর্বাধিক সমাধান খুঁজে পেয়েছি যা আমি বহু বছর ধরে ব্যবহার করেছি এবং ইউনিক্স পরিবেশে ব্যবহার করেছি।

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
2017-08-03 19:40





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

কমান্ড লাইন ইউটিলিটিগুলি চালানোর জন্য কিছু কৌশল রয়েছে যা PowerShell এর সাথে মনে করা হয়নি:

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

    & 7zip.exe

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

    & "গ: \ পাথের সাথে \ পাথ \ SomeCommand.exe" "/ প্যারামিটার 2" "/ প্যারামিটার 2" "প্যারামিটার 2 এর মান" "মূল্য 2" "উদ্ধৃতি সহ"

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

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

অথবা এমনকি:

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

5
2017-08-11 15:07