【发布时间】:2015-04-24 14:57:06
【问题描述】:
我制作了一个以下的powershell脚本
$Now = Get-Date
$Days = "1"
$TargetFolder = "D:\DatabaseBackup"
$Extension = "*.bak"
$LastWrite = $Now.AddDays(-$Days)
$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 "DarkRed"
Remove-Item $File.FullName | out-null
}
else
{
Write-Host "No more files to delete!" -ForegroundColor "Green"
}
}
现在这是一个从目录中删除文件的简单脚本。
我的目录中有这样的文件
adventure_Test-20150131-191938.bak
adventure_Test-20150131-152010.bak
adventure_Test-20150205-191938.bak
adventure_Test-20150205-195038.bak
ontherDatabase-20150205-191938.bak
ontherDatabase-20150205-195038.bak
现在您可以看到我们在 31th Jan 2015 中有两个文件,在 5th Feb 2015 中有两个文件。我想删除除了最后两个添加的所有文件,我们在文件名中有日期时间来区分
更新 我想为每个数据库备份保留两个最新文件
【问题讨论】:
-
不清楚你想做什么。是否要保留目录中的两个最新文件?还是每天最新的两个?还是什么?
-
我想留下两个最新的
-
@MikeWise 我更新了问题,请参阅
-
@Ancient 这没有回答 Mike Wise 的问题...从您列出的输入文件中,您想保留哪些?最新的两个、每天最新的还是全部?
-
好的,现在我们在
adventure_test备份中有两个不同的数据库有问题的文件名列表我想保留两个newset和ontherDatabase我想保留两个最新的不管当前日期我只想保存每个数据库的最新两条记录
标签: powershell cmd cmdlets