Computer >> कंप्यूटर >  >> प्रणाली >> Windows Server

पावरशेल के साथ जिप आर्काइव्स और अनजिप फाइल्स कैसे बनाएं?

आप ज़िप संग्रह बनाने और उन्हें निकालने के लिए पावरशेल की सुविधाओं का उपयोग कर सकते हैं। पावरशेल 5.0 में (यह पावरशेल संस्करण विंडोज 10 पर डिफ़ॉल्ट रूप से स्थापित है), एक अलग मॉड्यूल Microsoft.PowerShell.Archive उपलब्ध है। Windows के पुराने संस्करणों पर, आप ZipFile . का उपयोग कर सकते हैं संग्रह के लिए .NET Framework से वर्ग।

Microsoft.PowerShell.Archive मॉड्यूल में केवल दो cmdlets हैं (C:\Windows\System32\WindowsPowerShell\v1.0\Modules\Microsoft.PowerShell.Archive):

  • संपीड़ित-संग्रह
  • विस्तृत-संग्रह करें

Get-Command -Module Microsoft.PowerShell.Archive | Format-Table -AutoSize

<पूर्व>कमांड प्रकार का नाम             संस्करण स्रोत ------------ ----           ---------कार्य   संपीड़ित-संग्रह 1.0.1.0 Microsoft.PowerShell.ArchiveFunction    विस्तार-संग्रह 1.0.1.0 Microsoft.PowerShell.Archive

पावरशेल के साथ जिप आर्काइव्स और अनजिप फाइल्स कैसे बनाएं?

आइए अपनी PowerShell स्क्रिप्ट में ज़िप संग्रह बनाने और निकालने के लिए इन cmdlets का उपयोग करने के उदाहरण देखें।

पॉवरशेल:कंप्रेस-आर्काइव के साथ ज़िप आर्काइव बनाएं

कंप्रेस-आर्काइव कमांड में निम्नलिखित सिंटैक्स होता है:

Compress-Archive [-Path] String[] [-DestinationPath] String  [-CompressionLevel String ] [-Update]

  • पथ पैरामीटर का उपयोग फ़ाइलों या फ़ोल्डरों को संग्रहीत करने के लिए पथ निर्दिष्ट करने के लिए किया जाता है;
  • गंतव्यपथ - ज़िप फ़ाइल का पथ निर्दिष्ट करता है;
  • संपीड़न स्तर - संपीड़न स्तर सेट करता है (NoCompression , Optimal या Fastest );
  • अपडेट करें - आपको मौजूदा ज़िप संग्रह में फ़ाइलें जोड़ने (अपडेट) करने की अनुमति देता है;
  • बल - यदि निर्दिष्ट नाम वाला कोई संग्रह पहले से मौजूद है, तो उसे अधिलेखित कर दिया जाएगा।
युक्ति . संपीड़न स्तर विकल्प:

  • इष्टतम — संपीड़न के स्तर द्वारा अनुकूलन;
  • सबसे तेज़ — समय के अनुसार अनुकूलन;
  • संपीड़न नहीं — बिना किसी संपीड़न के।

पहले से संपीड़ित फ़ाइलों (jpg, msi, mp3, आदि) को एक ज़िप फ़ाइल में संग्रहीत करते समय NoCompression विकल्प का उपयोग किया जाना चाहिए। इस मामले में, विंडोज़ उन्हें संपीड़ित करने में CPU समय बर्बाद नहीं करेगा।

किसी एक फ़ाइल को ज़िप करने के लिए, चलाएँ:

Compress-Archive -Path "C:\Logs\WindowsUpdate.log" -DestinationPath C:\Archive\updatelog.zip -CompressionLevel Optimal

पावरशेल के साथ जिप आर्काइव्स और अनजिप फाइल्स कैसे बनाएं?

आप एकाधिक फ़ोल्डरों की संपूर्ण सामग्री को ज़िप कर सकते हैं (सभी फ़ाइलों और नेस्टेड फ़ोल्डरों सहित):

Compress-Archive -Path C:\Logs\,C:\Logs2\ -DestinationPath C:\Archive\logs-all.zip -CompressionLevel Optimal

संग्रह में एकाधिक फ़ाइलें या फ़ोल्डर जोड़ने के लिए, उनके नाम अल्पविराम से अलग करें।

आप ज़िप संग्रह में केवल विशिष्ट मास्क वाली फ़ाइलें जोड़ सकते हैं। उदाहरण के लिए, निम्न आदेश केवल *.txt फ़ाइलों को ज़िप करेगा।

Compress-Archive -Path C:\Logs\*.txt -DestinationPath C:\Archive\logs-txt.zip –CompressionLevel Fastest

Get-ChildItem cmdlet के साथ अधिक जटिल फ़िल्टर का उपयोग किया जा सकता है। उदाहरण के लिए, निम्न स्क्रिप्ट आपको डिस्क पर *.docx या *.xlsx एक्सटेंशन वाली शीर्ष 10 सबसे बड़ी फ़ाइलों को खोजने और उन्हें संग्रह में जोड़ने की अनुमति देगी:

Get-ChildItem c:\share\ITdept -Include *.xlsx –Recurse| sort -descending -property length | select -first 10 |Compress-Archive -DestinationPath C:\backup\itdeptdocs.zip

किसी मौजूदा ज़िप संग्रह में नई फ़ाइलें जोड़ने के लिए, अपडेट . का उपयोग करें कुंजी:

Compress-Archive -Path C:\Logs\,C:\logs2\ –Update -DestinationPath C:\Archive\logs-txt.zip

संकेत .क्योंकि Microsoft.PowerShell.Archive मॉड्यूल System.IO.Compression.ZipArchive वर्ग का उपयोग करता है, आप 2 GB से बड़ी फ़ाइल को संपीड़ित नहीं कर सकते (क्योंकि अंतर्निहित API की एक सीमा है)। किसी बड़ी फ़ाइल को संपीड़ित करने का प्रयास करते समय, एक त्रुटि दिखाई देगी:

पावरशेल के साथ जिप आर्काइव्स और अनजिप फाइल्स कैसे बनाएं?

अपवाद "3" तर्क के साथ "लिखें":"स्ट्रीम बहुत लंबा था।" C:\Windows\system32\WindowsPowerShell\v1.0\Modules\Microsoft.PowerShell.Archive\Microsoft.PowerShell पर। Archive.psm1:805char:29+ ...                    $destStream.Write($buffer, 0, $numberOfBytesRead)+                      ~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~+ श्रेणी की जानकारी          :निर्दिष्ट नहीं:(:) [], MethodInvocationException+ FullQualifiedErrorId:IOException

विस्तार-संग्रह के साथ ज़िप फ़ाइल कैसे निकालें?

आप ज़िप फ़ाइलों को अनज़िप करने के लिए एक्सपैंड-आर्काइव cmdlet का उपयोग कर सकते हैं। cmdlet के लिए सिंटैक्स समान है:

Expand-Archive [-Path] String [-DestinationPath] String [-Force]  [-Confirm]

उदाहरण के लिए, हमने पहले बनाए गए ज़िप संग्रह को निर्दिष्ट फ़ोल्डर में अनपैक करने के लिए और फ़ाइलों को अधिलेखित करने के लिए:

Expand-Archive -Path C:\archive\logs-all.zip  -DestinationPath c:\logs -Force

पावरशेल के साथ जिप आर्काइव्स और अनजिप फाइल्स कैसे बनाएं?

Microsoft.PowerShell.Archive मॉड्यूल के नुकसान:

  • आप संग्रह की सामग्री को निकाले बिना नहीं देख सकते;
  • आप संग्रह से कुछ फ़ाइलों को नहीं निकाल सकते (आपको संपूर्ण संग्रह फ़ाइल को निकालना होगा);
  • ज़िप को छोड़कर आप अन्य संग्रह प्रारूपों का उपयोग नहीं कर सकते;
  • आप किसी ज़िप संग्रह को पासवर्ड से सुरक्षित नहीं कर पाएंगे।
अधिक जटिल मामलों में, आपको अपनी PowerShell स्क्रिप्ट में संग्रह करने के लिए तृतीय-पक्ष टूल का उपयोग करने की आवश्यकता होती है। उदाहरण के लिए, 7zip या 7Zip4Powershell मॉड्यूल।

आप 7Zip4Powershell मॉड्यूल को स्थापित कर सकते हैं और पासवर्ड से सुरक्षित ज़िप फ़ाइल को निम्नानुसार निकाल सकते हैं:

Install-Module -Name 7Zip4Powershell
Expand-7Zip -ArchiveFileName C:\Archive\Logs.zip -Password "p@ssd0rw" -TargetPath C:\Share\Logs

पावरशेल ज़िपफाइल क्लास के साथ संपीड़ित फ़ाइलों के साथ कार्य करना

पुराने Windows संस्करण में (Windows 10 या Windows Server 2016 से पहले PowerShell संस्करण <5.0 (यदि आप PowerShell संस्करण को अपग्रेड नहीं कर सकते हैं) के साथ, आप ज़िप संग्रह बनाने के लिए एक अलग ZipFile वर्ग (NET Framework 4.5 से) का उपयोग कर सकते हैं।

सबसे पहले, कक्षा को अपने पावरशेल सत्र में लोड करें:

Add-Type -AssemblyName "System.IO.Compression.FileSystem"

किसी फोल्डर को आर्काइव करने के लिए, इस तरह PS स्क्रिप्ट का उपयोग करें:

$SourceFolder = 'C:\Logs'
$ZipFileName = 'C:\PS\logs.zip'
[IO.Compression.ZipFile]::CreateFromDirectory($SourceFolder, $ZipFileName)

पावरशेल के साथ जिप आर्काइव्स और अनजिप फाइल्स कैसे बनाएं?

ज़िप संग्रह को अद्यतन करने और संपीड़न अनुपात सेट करने के लिए, निम्न पावरशेल कोड का उपयोग करें:

$addfile = ‘C:\temp\new.log’
$compressionLevel = [System.IO.Compression.CompressionLevel]::Fastest
$zip = [System.IO.Compression.ZipFile]::Open($zipFileName, 'update')[System.IO.Compression.ZipFileExtensions]::CreateEntryFromFile($zip, $addfile, (Split-Path $addfile -Leaf), $compressionLevel)
$zip.Dispose()

$zip.Dispose() जिप फाइल को बंद करने के लिए कमांड का उपयोग किया जाता है।

आप ज़िप संग्रह की सामग्री सूचीबद्ध कर सकते हैं:

[System.IO.Compression.ZipFile]::OpenRead($zipFileName).Entries.Name

पावरशेल के साथ जिप आर्काइव्स और अनजिप फाइल्स कैसे बनाएं?

या आप ज़िप संग्रह की सामग्री को अतिरिक्त जानकारी के साथ आउट-ग्रिड व्यू तालिका के रूप में प्रदर्शित कर सकते हैं (संपीड़ित/असम्पीडित फ़ाइलों का आकार, अंतिम लेखन समय, आदि):

$ZipFileName = "C:\PS\logs1.zip"
$Stream = New-Object IO.FileStream($ZipFileName , [IO.FileMode]::Open)
$ZipArchive = New-Object IO.Compression.ZipArchive($Stream)
$ZipArchive.Entries |
Select-Object Name,
@{Name="File Path";Expression={$_.FullName}},
@{Name="Compressed Size (KB)";Expression={"{0:N2}" -f($_.CompressedLength/1kb)}},
@{Name="UnCompressed Size (KB)";Expression={"{0:N2}" -f($_.Length/1kb)}},
@{Name="File Date";Expression={$_.LastWriteTime}} | Out-GridView
$ZipArchive.Dispose()
$Stream.Close()
$Stream.Dispose()

पावरशेल के साथ जिप आर्काइव्स और अनजिप फाइल्स कैसे बनाएं?

ज़िप फ़ाइल को C:\Logs फ़ोल्डर में निकालने के लिए, निम्न कमांड का उपयोग करें:

$SourceZipFile = 'C:\PS\logs.zip'
$TargetFolder = 'C:\Logs'
[IO.Compression.ZipFile]::ExtractToDirectory($SourceZipFile, $TargetFolder)


  1. iPhone पर Zip फ़ाइलें कैसे बनाएं और खोलें?

    सालों तक कंप्यूटर पर काम करते हुए आपने Zip या compressed शब्द कई बार सुना होगा। Zip फ़ाइलें व्यक्तियों और व्यवसायों दोनों के लिए बहुत काम की हैं, जिसमें आप बड़ी फ़ाइलों को संपीड़ित कर सकते हैं और उन्हें ईमेल के माध्यम से भेज सकते हैं। जिप फाइलें एक फोल्डर में सभी डेटा को कंप्रेस करती हैं और ईमेल अटै

  1. Mac पर फ़ाइलें कैसे अनज़िप करें और निकालें

    ज़िप एक लोकप्रिय संग्रह फ़ाइल स्वरूप है जो उपयोगकर्ताओं को उन्नत संपीड़न तकनीकों का उपयोग करके एक ही फ़ोल्डर में आसानी से एकाधिक फ़ाइलों को भेजने या साझा करने की अनुमति देता है। इसलिए, ईमेल भेजते समय या डेटा साझा करते समय बड़ी संख्या में अटैचमेंट संलग्न करने के बजाय, आप काम पूरा करने के लिए बस एक ज़

  1. Windows 10 पर Powershell का उपयोग करके फ़ाइलों को ज़िप/अनज़िप कैसे करें

    ज़िप फ़ंक्शन आपको एक फ़ाइल को एक फ़ाइल में संपीड़ित सभी संबंधित कॉन्फ़िगरेशन के साथ फ़ाइल को छोटे आकार में संपीड़ित करने की अनुमति देता है। इस तरह, इस तरह की कंप्रेस की गई ज़िप फ़ाइलें दूसरों के साथ ईमेल, या अन्य फ़ाइल-साझाकरण माध्यमों पर आसानी से साझा की जा सकती हैं। Zip फ़ंक्शन करने के लिए, उपयो