Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Забанен


Сообщения: 793
Благодарности: 260

Профиль | Цитировать


Дык понятное дело: обращение по нескольку раз к одной и той же папке с пропуском полученных данных всякий раз через цикл само по себе не есть гуд и создаст некислую нагрузку. Намного проще (и логичнее) сделать один запрос к папке с сортировкой и записью полученных данных в переменную. Например:
Код: Выделить весь код
$date = Get-Date
$data = ls | ? {!$_.PSIsContainer} | select @{
   N='Exists';E={($date - $_.CreationTime).Days}
}, FullName | sort Exists
В итоге получим "таблицу" с количеством дней с момента создания файла и полным именем последнего (для более безопасного удаления). Далее из полученной коллекции останется исключить файлы, согласно требуемому критерию. Так, к примеру, для дней:
Код: Выделить весь код
$days = 17
($data | ? {$_.Exists -le $days})[0]
По аналогии - недели и месяцы, единственно, что их придется перевести в количество дней (недели: ($date - $date.AddDays(-(7 * $NumberOfWeeks))).Days, месяцы: ($date - $date.AddMonths(-$NumberOfMonths)).Days).
Суть, полагаю, ясна.
Это сообщение посчитали полезным следующие участники:

Отправлено: 10:02, 17-03-2016 | #2