Public/Remove-OlderThan.ps1

<#
    .Description
    This scripts function is to delete files and folders older than x days recursively.
 
    .Parameter Path
    Path where files are to be deleted from
 
    .Parameter Daysback
    Specify files over x days old to be deleted
 
    .Parameter Recurse
    Specify if the path should have files also removed from subfolders
 
    .Example
    Delete-OlderThan -Path "C:\Folder" -DaysBack "-90"
 
    .Link
    https://github.com/TheTaylorLee/AdminToolbox
#>


function Remove-OlderThan {

    Param (
        [Parameter(Mandatory = $true)]$Path,
        [Parameter(Mandatory = $true)][ValidateScript( { $_ -lt 0 })][int]$Daysback,
        [Parameter(Mandatory = $false)][Switch]$Recurse
    )

    #Check For Admin Privleges
    Get-Elevation

    if ($Recurse) {
        $CurrentDate = Get-Date
        $DatetoDelete = $CurrentDate.AddDays($Daysback)
        Get-ChildItem $Path -Recurse | Where-Object { $_.LastWriteTime -lt $DatetoDelete } | Remove-Item -Force
    }

    else {
        $CurrentDate = Get-Date
        $DatetoDelete = $CurrentDate.AddDays($Daysback)
        Get-ChildItem $Path | Where-Object { $_.LastWriteTime -lt $DatetoDelete } | Remove-Item -Force
    }

}