Вы должны попытаться использовать тот же оператор "Where" после вашего Get-ChildItem
командлета, чтобы отфильтровать определенные имена файлов. Попробуйте что-то вроде этого:
Get-ChildItem $Path -Recurse | Where-Object {$_.Name -notlike "*$excludes*" -and $_.LastWriteTime -lt $DeleteDays}
Сначала запустите, чтобы убедиться, что вы получите то, что вы хотите, затем вы можете передать Remove-item -Confirm:$false
, как вы сделали в своем OP. Редактировать: переключатель -Confirm:$false
означает, что он не предложит вам подтвердить, хотите ли вы удалить файл, он просто удалит. Вот почему вы хотите сначала запустить Get-ChildItem
.