列出目录中超过一定期限的项目,然后将其删除

时间:2019-01-31 11:43:19

标签: powershell powershell-v2.0

我确定我已经错过了一些明显的东西,但是已经有一段时间了,因为我需要使用PowerShell(n.b。它是第2版)。

我需要一个基本脚本,该脚本可以删除超过一定期限(3天)的文件。我有以下内容:

$logDirectory = "C:\logs\"

$days = (Get-Date).AddDays(-3)

# Delete files older than the $days
Get-ChildItem -Path $logDirectory -Recurse | 
    Where-Object { !$_.PSIsContainer -and $_.LastWriteTime -lt $days } |
    %{Write-Host File Found: $_.fullname $_.LastWriteTime}

Get-ChildItem -Path $logDirectory -Recurse | 
    Where-Object { !$_.PSIsContainer -and $_.LastWriteTime -lt $days } |
    Remove-Item -Force 

这可行,但是如果我将两者结合起来就行不通了。而且我敢肯定,一定有一种更整洁的方法来执行此操作,在该操作中,我可以写出文件列表,然后将其删除。像这样:

Get-ChildItem -Path $logDirectory -Recurse | 
    Where-Object { !$_.PSIsContainer -and $_.LastWriteTime -lt $days } |
    %{Write-Host File Found: $_.fullname $_.LastWriteTime} |
    Remove-Item -Force 

但这只是列出项目,而不是删除项目。

0 个答案:

没有答案