Powershell删除x天以前的文件

时间:2016-11-15 21:50:14

标签: powershell

目标是删除超过x天的文件。用于测试使用副本。 找到了关于如何做到这一点的几篇文章 - 但是我遇到的问题是,无论使用哪个属性变量和比较ALL文件都被移动(复制)。其次,尝试将结果传递给日志文件将创建文件但不写入文件。我错过了一些但看不到的东西。我对错误的任何意见表示赞赏!

$SDirectory = "C:\TestOne*"
$Destpath = "C:\TestTwo"
$limit = (Get-Date).Date.AddDays(-2)
$Full = Get-childitem -path $SDirectory -Recurse -Include *.bak,*.trn

foreach ($i in $Full) 
{
    ##if ($i.CreationTime -gt ($(Get-Date).adddays(-2)))
    if ($i.LastWriteTimeUtc -gt $limit)
    {
      Copy-Item -Path $Full -Destination $Destpath -Force | Out-File C:\Admin\Results11.txt -Append
    }
}

2 个答案:

答案 0 :(得分:1)

复制所有文件的原因是因为您实际复制了它们:

Copy-Item -Path $Full ...

我想你想要更像这样的东西:

Copy-Item -Path $($i.FullName) ...

要捕获输出,请使用-PassThru

Copy-Item -Path $($i.FullName) -Destination $Destpath -PassThru -Force | Out-File C:\Admin\Results11.txt -Append

答案 1 :(得分:0)

这就是我提出的:

$SDirectory = "C:\TestOne*"
$Destpath = "C:\TestTwo"
$limit = (Get-Date).Date.AddDays(-2)
$files = Get-ChildItem -Path "$SDirectory" | % {
    if ($_.CreationTime -gt $limit) {
    Copy-Item -Path $_.FullName "$Destpath"
    Add-Content "C:\Admin\Results11.txt" -Value $_.Name
    }
}