【发布时间】:2016-01-20 22:34:10
【问题描述】:
Get-ChildItem –Path “H:\backups” –Recurse | Where-Object{$_.CreationTime –lt (Get-Date).AddDays(-4)} | Remove-Item
我有这个脚本可以删除超过 4 天的文件。但是我想控制它应该删除 X 个文件 + 4 天前的文件夹,并且还想获取日志以便我以后看到它。 下面是脚本,可以吗?
$Now = Get-Date
$Days = "4"
$TargetFolder = "H:\backups"
$LastWrite = $Now.AddDays(-$days)
$Files = get-childitem $TargetFolder -include *.* -recurse -force
Where {$_.CreationTime -le "$LastWrite"}
foreach ($i in Get-ChildItem $TargetFolder -recurse)
{
if ($i.CreationTime -lt ($(Get-Date).AddDays(-10)))
{
Remove-Item $Files -recurse -force
}
}
Write-Output $Files >> c:\delete.log
【问题讨论】:
-
没问题 - 你问它是否有效?您可以通过在包含测试文件的测试目录中测试脚本来自己发现这一点。
-
没工作你有吗?如何获取在下面的脚本中删除了哪些文件的输出。 Get-ChildItem –Path “H:\backups” –Recurse | Where-Object{$_.CreationTime –lt (Get-Date).AddDays(-4)} |删除项目
-
在删除之前输出文件名。
标签: powershell