我在Powershell脚本中使用以下代码片段来清理不再需要的文件,但这似乎删除了所有内容(感谢上帝的备份...),而不仅仅是删除了早于$ limit的文件,谁能解释这种行为?
param (
[int]$daystokeep = 548 # default to 18 months
)
$limit = (Get-Date).AddDays(-1 * $daystokeep) # 18 months
Get-ChildItem -Path $path -Recurse -Force | Where-Object { !$_.PSIsContainer -and $_.ModifyTime -lt $limit } | Remove-Item -Force
答案 0 :(得分:4)
FileInfo
对象没有ModifyTime
属性,因此您的比较结果基本上是:
$null -lt $limit
始终为$true
。
将属性名称更改为LastWriteTime
:
$_.LastWriteTime -lt $limit