首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >System.IO.Compression.ZipFile多目录

System.IO.Compression.ZipFile多目录
EN

Stack Overflow用户
提问于 2016-03-31 05:01:42
回答 1查看 1.2K关注 0票数 0

如果我为我的$destination设置了一个数组,我就可以让它工作,但这会为所选的每个目录创建一个独立的.zip。

如何选择每个目录并将它们压缩到单个目标下,而不是多个目标文件?这是我的代码:

代码语言:javascript
复制
$type = "*.txt"
$destination = "LogsBackup.zip"

Add-Type -Assembly "System.IO.Compression.FileSystem" ;

$_sources = dir c:\Logs\$type -Recurse | Select Directory -Unique | 
            Out-GridView -OutputMode Multiple |
            Select @{Name="Path";Expression={$_.Directory -As [string]}} 

for ($i = 0; $i -lt $_sources.Length; $i++)
{
    $compressionLevel = [System.IO.Compression.CompressionLevel]::Optimal
    [System.IO.Compression.ZipFile]::CreateFromDirectory( $_sources[$i].Path , $destination)
}

我希望保留我的Out-GridView选项,所以如果它是一个目录或多个目录,我可以选择它们并将它们存储为一个数组。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-01 04:01:51

-update参数将确保使用从out-gridview中选择的新条目更新现有存档。

代码语言:javascript
复制
$destination = "C:\logs\LogsBackup.zip"

#Create a single archive
Get-ChildItem -Path C:\logs -Filter *.txt -Recurse | 
    Select @{Name="Path";Expression={$_.DirectoryName}} -Unique  | 
        Out-GridView -PassThru | Compress-Archive -CompressionLevel Optimal -DestinationPath $destination -Update
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36324536

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档