Вышеупомянутый способ использования LastWriteTime
является правильным способом сделать это.Но если в именах файлов есть отметки времени, как у вас, фильтрация может быть более эффективной, чем Where-Object
, и вы можете присвоить ей массивы.
Сначала создайте массив дат, которые следует исключить:
$range = -3 .. -5 | ForEach-Object { "*$(Get-Date (Get-Date).addDays($_) -UFormat '%Y-%m-%d')*" }
Что сегодня возвращает:
*2018-12-18*
*2018-12-17*
*2018-12-16*
И передайте это Get-ChildItem
:
Get-ChildItem "C:\tomcat\logs" -Exclude $range