Спасибо LotPings и T-Me , с вашими предложениями, которые я объединил и смог исправить мою ситуацию с помощью следующих строк кода, которые я вставил сюда для чьих-либо ссылок :
Get-ChildItem -Path "C:\Data" -Recurse -File | ForEach-Object {
if($_.LastWriteTime -le (get-date).AddDays(-90) -or ($_.Name -notlike "*pattern.log" -and $_.LastWriteTime -le (Get-Date).AddDays(-30))) {
Remove-Item $_.FullName
}
}
Кроме того, причина, по которой другие сценарии занимали много времени, заключалась в том, что я хранил информацию о файлах в переменных и заметил, что, поскольку в этом сценарии число файлов огромно, оно потребляло много оперативной памяти 10 + ГБ RAM и мне пришлось его принудительно закрыть. Запланированное задание, которое у меня было по расписанию, выполняемое каждый день с использованием сценария, на самом деле занимало около 5 дней и, следовательно, не выполнялось в течение 4-5 дней при каждом запуске. Но теперь это занимает всего пару часов, и проблема, с которой я столкнулся, изначально исправлена.