如何单独压缩文件夹中的所有文件?

时间:2016-03-22 03:13:16

标签: powershell

在powershell中,我应该如何单独压缩文件夹中的所有文件?例如,我在一个文件夹中有10个文件,这意味着我想要有10个拉链。

下面是我的代码,但它只会压缩一个文件。

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"

1 个答案:

答案 0 :(得分:2)

  1. 因此我们获取路径中的文件夹列表(-Directory仅返回文件夹)
  2. 然后,对于文件夹列表中的每个文件夹,我们将其传递给ZipFiles函数
  3. 函数调用将如下所示:ZipFiles "C:\Logs.zip" "C:\Logs"

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