仅压缩文件

仅压缩文件

我想用这个或 powershell 中的 compress-archiev 创建一个 powershell 脚本,以创建一个只包含文件而不包含文件夹的 zip 文件。顶层文件夹包含文件夹,子文件夹中有包含文件的文件夹。我只想压缩顶层文件夹中每个文件夹的文件,而不是文件夹。

我压缩了所有文件夹 C:\some\folder01\manyfolders\files 但我只需要 C:\some\folder01\files 和 C:\some\folder02\files

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

$directory = "C:\some\folder\manyfolders\"

$folders = Get-ChildItem $directory -Recurse | Where-Object {$_.PSIsContainer} | Select-Object -ExpandProperty FullName

foreach ($folder in $folders) {
$archive = Get-ChildItem $folder -Recurse -File
[System.IO.Compression.ZipFile]::CreateFromDirectory($folder, $archive, 'Optimal', $True)
}

答案1

该脚本非常简单:

Get-ChildItem $directory -Directory  |Foreach-Object { 
    Compress-Archive -Path ($_|Get-ChildItem -Recurse -File).FullName -Destination ($_.name + ".zip") 
}
  1. 获取给定目录中的所有目录(不包括子目录)
  2. 对于每个目录创建一个 zip 档案,其中包含目录名称以及该目录内所有文件的列表(递归)

相关内容