#----- 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 Location 2;//Server2/backup/;3
$lastwrite
周围的引号。 - Frode F.