0

帮助!

我需要扫描一个包含 200gb 压缩 .log 日志文件的文件夹,并删除所有超过 584 天的文件。

我找到了这个,并在那里留下了回复,但如果有人能在此期间提供帮助,那么谢谢

http://social.technet.microsoft.com/Forums/en/ITCG/thread/793118fb-8345-4711-9710-9c3e485e6d89?prof=required

干杯

4

1 回答 1

0

使用 SevenZipSharp。首先备份任何重要数据:)

确保阅读并更改任何没有意义的路径等。

[Reflection.Assembly]::LoadFile("c:\lib\SevenZipSharp.dll")
[SevenZip.SevenZipExtractor]::SetLibraryPath("c:\lib\7z.dll")
$zipFiles = Get-ChildItem D:\zips\ -Filter "*.zip"
$oldDate = (get-date).AddDays(-584)

$zipFiles | % {
    $compressor = [SevenZip.SevenZipCompressor]("C:\")
    $compressor.ArchiveFormat = "zip"
    $extractor = [SevenZip.SevenZipExtractor]($_.FullName)
    $object = New-Object 'system.collections.generic.dictionary[int,string]'
    $extractor.ArchiveFileData | %{
        if ($_.LastWriteTime -lt $oldDate){
            #null index deletes the file
            $object.add($_.Index,"")
        }
        else {
            $object.add($_.Index,$_.FileName)
        }
    }
    $compressor.ModifyArchive($_.FullName,$object)
}
于 2012-07-30T18:31:56.783 回答