PowerShell删除脚本,用于查看文件夹时间戳而不是文件

时间:2016-05-04 01:29:57

标签: powershell

我有一个脚本可以自动删除早于x天的文件。

$dump_path = "C:\Backup\GroupPolicies"
$max_days = "-7"
$curr_date = Get-Date
$del_date = $curr_date.AddDays($max_days)
Get-ChildItem $dump_path -Recurse | Where-Object { $_.LastWriteTime -lt $del_date } | Remove-Item -Recurse -Force

但是,我希望它能够查找 文件夹时间戳而不是文件时间戳 。有这样的方法吗?我到处搜索,但我看到的只是文件时间戳。

1 个答案:

答案 0 :(得分:1)

如果您仅限于PowerShell 2.0,那么您可以执行类似的操作,但效率会有点低。

Get-ChildItem $dump_path -Recurse | 
    Where-Object {$_.PSIsContainer -and $_.LastWriteTime -lt $del_date } | 
    Get-ChildItem -Recurse | 
    Remove-Item -Recurse -Confirm:$False -Force -WhatIf

获取与日期条件匹配的所有文件夹。然后为每个文件夹获取所有子项目。这可能包括更多文件夹。因此,如果您的层次结构很复杂,那么它将会崩溃,并且需要更复杂的逻辑。

使用-WhatIf确保代码隔离了您想要的文件。

使用PowerShell至少3.0,您可以使用-Directory的{​​{1}}开关参数

Get-ChildItem