我需要以编程方式(最好使用Powershell)删除一个文件夹中早于给定天数的一些文件。
我已经编写了一个简单的脚本来完成这个任务,但是我遇到的问题是,由于文件太多,它似乎甚至无法开始删除。
我希望找到一种分批删除的方法。比如说先获取前1000个文件,然后删除,以此类推。
目前,该文件夹可能有几十万个文件,而且几乎不可能遍历。
我已经编写了一个简单的脚本来完成这个任务,但是我遇到的问题是,由于文件太多,它似乎甚至无法开始删除。
我希望找到一种分批删除的方法。比如说先获取前1000个文件,然后删除,以此类推。
目前,该文件夹可能有几十万个文件,而且几乎不可能遍历。
Param(
[Parameter(Mandatory=$true)][string]$Path,
[Parameter(Mandatory=$true)][string]$DaysToDelete
)
$limit = (Get-Date).AddDays($DaysToDelete)
$LogFile = "FileCleanupLog-$(Get-Date -f yyyyMMdd_HH_mm_ss).txt";
function Log-Message
{
Param ([string]$logtext)
Add-content $LogFile -value $logtext
}
If (-Not (Test-Path $Path))
{
Write-Host "Invalid Path provided!" -ForegroundColor Red
Exit
}
$files = Get-ChildItem -Path $Path -Recurse -Force | Where-Object { !$_.PSIsContainer -and $_.CreationTime -lt $limit }
If ($files.Count -GT 1) {
$files | % {$directory=$_.DirectoryName;(Log-Message "Deleting File $directory\$_");$_ } | Remove-Item -Force
}
get-childitem . | select -first 100
?你需要发布你当前拥有的脚本。 - Tony Hinkle