从多个zip存档中删除多个文件

时间:2018-11-12 17:07:34

标签: powershell

我有一个文件列表,我需要从多年价值每月的文件归档中删除这些文件。 文本文件中大约有400多个文件名,大约5年的月度归档文件按年份分类在文件夹中。

我的脚本执行了一个双循环,在每个存档中查找每个文件并将其删除,但是速度非常慢。 我正在寻找有关如何改进方法的任何建议。谢谢!

set-alias rar "C:\Program Files\7-Zip\7z.exe"

    $archives = get-childitem 'D:\Archive Data\APP_P\website\Document\exports\Exports Archive\Archive\2014exports'   -Recurse
    write-host $archives
    Get-Alias rar

    foreach ($archive in $archives ) {

    write-host $archive.Mode

    $exports = Get-Content C:\scripts\ScottTrade_cleanup.txt.txt
        foreach ($export in $exports){
        write-host $export
       rar d $archive.FullName $export -r

        }

    } 

1 个答案:

答案 0 :(得分:0)

因此,您在使用时出现了次要的性能问题

$exports = Get-Content C:\scripts\ScottTrade_cleanup.txt.txt

将其移出循环

最大的问题是,您要为每个要删除的文件重新加载一个zip文件。我们需要解决此问题。取出文件列表中的文件,摆脱内循环,然后运行:

rar d $archive.FullName -r @FullListFilePathNameExtension

我的第一个解决方案是将包含开关(-i)与删除一起使用,但是Windows不支持超过8k的命令行。