A requirement to identify the total file size of all files not used in the last 3 months.
This was the solution
#Run as administrator
#You need to have permission of the files or folders
$date = (Get-Date).AddMonths(-3)
dir C:\temp -Recurse | ?{$_.lastwritetime -lt $date -and !$_.PsIsContainer} | Measure-Object -Property Length -Sum
# oneliner
dir C:\temp -Recurse -Force -ErrorAction SilentlyContinue | `
?{$_.lastwritetime -lt (Get-Date).AddMonths(-6)} | Measure-Object -Property Length -Sum -ErrorAction SilentlyContinue
# resulting data will be in bytes. To convert them to gigabytes, you may do this:
$files = dir C:\temp -Recurse -Force -ErrorAction SilentlyContinue | `
?{$_.lastwritetime -lt (Get-Date).AddMonths(-6)} | Measure-Object -Property Length -Sum -ErrorAction SilentlyContinue
($files.sum / 1gb).ToString(“F02”)
# F02 determines how much digits will appears after comma. In my case – 2 digits.
dir C:\temp -Recurse | ?{$_.psiscontainer} | %{
Write-Host current folder is $_.fullname;
dir $_.fullname | measure-object -property Length -sum -ErrorAction SilentlyContinue
} >c:\temp\file sizes
Credit to the Original post script this is based on