Powershell удаляет больше файлов, чем должно, ошибка? - PullRequest
0 голосов
/ 01 ноября 2018

Я использую следующий фрагмент кода в скрипте 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

1 Ответ

0 голосов
/ 01 ноября 2018

FileInfo объекты не имеют свойства ModifyTime, поэтому ваше сравнение в основном оценивается как:

$null -lt $limit

, который всегда $true.

Измените имя свойства на LastWriteTime:

$_.LastWriteTime -lt $limit
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...