【发布时间】:2016-03-16 20:23:15
【问题描述】:
#----- define parameters -----#
#----- get current date ----#
$Now = Get-Date
#----- define amount of days ----#
$Days = "3"
#----- define folder where files are located ----#
$TargetFolder = "C:\test2"
#----- define extension ----#
$Extension = "*.*"
#----- define LastWriteTime parameter based on $Days ---#
$LastWrite = $Now.AddDays(-$Days)
#----- get files based on lastwrite filter and specified folder ---#
$Files = Get-ChildItem $TargetFolder -Include $Extension -Recurse |
Where {$_.LastWriteTime -le "$LastWrite"}
foreach ($File in $Files) {
if ($File -ne $NULL) {
Write-Host "Deleting File $File" -ForegroundColor "Red"
Remove-Item $File.FullName | Out-Null
} else {
Write-Host "No more files to delete!" -foregroundcolor "Green"
}
}
这是一个很好的 PowerShell 脚本,可以删除超过 X 天的文件,但我们想删除保存在不同位置的多个文件,每个路径的天数不同。
例如,如果我们必须删除超过 3 天的文件,那么我们可以像这个例子一样添加另一个位置:
$TargetFolder = "C:\test","C:\test2"
它会处理这两个文件夹,但我们想知道是否有一种方法可以为不同的文件夹设置不同的天数。
在ksh 中,我们曾经在配置文件中这样做:
Location 1;//Server1/c$/processed;14 位置 2;//Server2/backup/;3
【问题讨论】:
标签: powershell