2016-03-22 35 views
0

Powershell'de, bir klasördeki tüm dosyaları tek tek nasıl atayım? Örneğin, bir klasörde 10 dosya var, yani 10 tane fermuar olmasını istiyorum.Klasördeki tüm dosyaları tek tek nasıl atarsınız?

Aşağıda benim kodum var, ancak yalnızca bir dosyayı sıkıştırır.

Add-Type -Path "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.IO.Compression.FileSystem.dll" 
function ZipFiles($zipfilename, $sourcedir) 
{ 
    Add-Type -Assembly System.IO.Compression.FileSystem 
    $compressionLevel = [System.IO.Compression.CompressionLevel]::Optimal 
    [System.IO.Compression.ZipFile]::CreateFromDirectory($sourcedir, 
     $zipfilename, $compressionLevel, $false) 
} 

ZipFiles "zippath" "sourcepath" 
+0

bir döngü içinde bunu: benziyor? –

+0

@ivan_pozdeev Bazı örnek kodları göstermeyi düşünüyor musunuz? Powershell için yeniyim – johndoe

+0

@johndoe Cevabınız Yardım? Cevabı nasıl elde ettiğime dair daha iyi bir açıklamaya ihtiyacın var mı? – Nick

cevap

2
  1. yüzden olacak
  2. Sonra folderlist her klasör için biz zipfiles onu geçmek (-Dizin döner sadece klasörleri) bir yol klasörlerin bir listesini almak
  3. Fonksiyon çağrısı işlev ZipFiles "C:\Logs.zip" "C:\Logs"

    $folderlist = Get-ChildItem -Path C:\ -Directory 
    Foreach ($Folder in $folderlist) 
    {ZipFiles "$($Folder.Fullname).zip" "$($Folder.Fullname)"} 
    
İlgili konular