我有一个包含许多zip文件夹的文件夹,在压缩文件夹中有许多包含文件的子文件夹。我需要检查每个zip文件中的每个文件,如果它超过两年并删除它。我尝试了这个,并使用硬编码路径进行测试。但是我将来可能不知道每个zip文件的名称,我需要能够查看所有的zip文件夹。
# The two parameters.
param([string]$limit, [string]$path)
$stream = New-Object IO.FileStream($path, [IO.FileMode]::Open)
$mode = [IO.Compression.ZipArchiveMode]::Update
$zip = New-Object IO.Compression.ZipArchive($stream, $mode)
($zip.Entries | ? { !$_.PSIsContainer -and $_.CreationTime -lt $limit }) | % { $_.Delete() }
$zip.Dispose()
$stream.Close()
$stream.Dispose
有任何关于我如何处理这个问题的想法吗?
答案 0 :(得分:0)
此脚本将在根文件夹中找到所有以扩展名zip结尾的文件。将根文件夹(所有拉链都存在)作为$ path变量传入。
param([string]$limit, [string]$path)
$zips = Get-ChildItem -Path $path -recurse *.zip
foreach ($zipfile in $zips) {
$stream = New-Object IO.FileStream($zipfile.FullName, [IO.FileMode]::Open)
$mode = [IO.Compression.ZipArchiveMode]::Update
$zip = New-Object IO.Compression.ZipArchive($stream, $mode)
($zip.Entries | ? { !$_.PSIsContainer -and $_.CreationTime -lt $limit }) | % { $_.Delete() }
$zip.Dispose() # <- probably don't need this
$stream.Close()
}