Powershell ile zip Unzip

Powershell ile zip unzip işlemleri yapmamız gereken durumlar olur özellikle Windows core sunucularda veya Azure cloudshell üzerinde bu işlemleri sıkça kullanıyoruz. Windows PowerShell 5.0 bunu yapmak için iki cmdlet ekledi.

Compress-Archive – cmdlet klasörleri veya tek tek dosyaları yeni arşiv oluşturmak ve arşiv dosyaları eklemek sağlar.

Expand-Archive – Extract-Archive dosyaları açmak için kullanılabilir.

Sisteminizdeki Powershell versiyonunu öğrenmek için aşağıdaki iki yolu kullanabilirsiniz. İkisi de Powershell açıldıktan sonra çalıştırılacak komutlar.

1- $PSVersionTable

2- Get-Host | Select-Object Version

PowerShell 5.0 veya daha sonra sistemlerinde yüklü deÄŸilse, Microsoft’un web sitesinden Windows Management Framework son sürümünü indirebilirsiniz burada.

powershell zip unzip
Resim-1 Powershell ile dosya zipleme ve unzip iÅŸlemi

Powershell ile zip Unzip

Zip Dosyaları Oluşturmak için PowerShell Kullanma

Yeni bir zip arÅŸivi yaratmak ve dosyaları sıkıştırmak için PowerShell’i nasıl kullanacağımıza bakalım.

Ä°ÅŸlem oldukça basit tek yapmanız gereken sıkıştırmak istediÄŸiniz klasörü belirtmek için -Path parametresini , oluÅŸturmak istediÄŸiniz arÅŸivin adını belirtmek için – DestinationPath parametresini kullanmak.

Aşağıdaki komut, kök C dizinin altındaki muhasebe klasörünü sıkıştırır ve Arşivler klasöründe Muhasebe-dosyalar.zip adlı bir arşiv oluşturur:

Compress-Archive -Path ‘C:\muhasebe’ -DestionationPath ‘C:\muhasebe\Muhasebe-dosyalar.zip’

Alternatif olarak, muhasebe klasöründeki dosyaları – Path yerine -LiteralPath kullanarak ayrı ayrı sıkıştırabiliriz . Bu komut, -LiteralPath parametresinde açıkça listelenen iki dosyanın bulunduÄŸu bir arÅŸiv oluÅŸturur:

Compress-Archive -LiteralPath C:\Muhasebe\ Dosya1.txt, C:\Muhasebe\Dosya2.txt -DestinationPath C:\muhasebe\Muhasebe-dosyalar.zip -Force

-Force parametresini eklediğimi ilk komutu kullanarak oluşturduğum arşivin üzerine yazmak için kullandım. -Force parametresi olmadan, varolan arşivlerin üzerine yazamazsınız ve PowerShell bunun yerine arşive dosya eklemenizi ister.

Bir arşive dosya eklemek için ise -Update parametresini kullanıyoruz . Aşağıdaki komut, Faturalar klasöründeki tüm dosyaları mevcut Muhasebe-dosyalar.zip arşivime ekler:

Compress-Archive -Path ‘C:\muhasebe’ -Update -HedefPath C:\muhasebe\Muhasebe-dosyalar.zip

İsteğe bağlı olarak, -CompressionLevel parametresini üç değerden biriyle kullanabilirsiniz.

  1. -Optimal
  2. -NoCompression
  3. -Fastest

-CompressionLevel parametresi ayarlanmamışsa, varsayılan ayar Optimal’dir. Mevcut en iyi sıkıştırmayı kullanır, ancak En Hızlı’dan daha uzun sürebilir. Sıkıştırma olmayan bir arÅŸiv oluÅŸturmak için NoCompression deÄŸerini kullanabilirsiniz.

 

Dosyaları Açmak için PowerShell Kullanma

ArÅŸivdeki dosyaları çıkartmak, bir arÅŸiv oluÅŸturmaktan daha kolaydır. Tek yapmanız gereken, arÅŸivin adını ve sıkıştırılmamış dosyalar için hedef klasörü belirtmek. AÅŸağıdaki komut, Muhasebe-dosyalar.zip arÅŸivinin içeriÄŸini Expand-Compress cmdlet’ini kullanarak C altında Muhasebe adlı bir klasöre çıkartır.

Expand-Archive -LiteralPath C:\muhasebe\Muhasebe-dosyalar.zip -DestinationPath C:\Muhasebe

Dosyaları açmak istediğiniz klasörün bulunması gerekmez; Expand-Archive gerekirse klasörü otomatik olarak oluşturur. Ancak, açmak istediğiniz dosyalar hedef klasörde zaten varsa, Expand-Archive bir hata döndürür. Komuta -Force parametresini ekleyerek hedef klasördeki dosyaların üzerine yazabilirsiniz.