Advertisement
RulerOf

Prune episodes from a daily series in Sonarr

May 26th, 2016
198
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. [CmdletBinding()]
  2. Param(
  3.     [Parameter(Mandatory=$True)]
  4.         [string]$filePath,
  5.  
  6.     [Parameter(Mandatory=$True)]
  7.         [int]$daysToKeep
  8. )
  9.  
  10. # Store the folder timestamp, because deleting files will modify it.
  11. $FolderTimestamp = (Get-Item $filePath).LastWriteTime
  12.  
  13. $showNFO = "$filePath\tvshow.nfo"
  14. Write-Verbose -Message "NFO File: $showNFO"
  15.  
  16. if (Test-Path "$filePath\tvshow.nfo")
  17.     { [xml]$showXML = Get-Content $showNFO }
  18. else
  19.     {
  20.     Write-Error -Message "Unable to locate $showNFO"
  21.     Exit
  22.     }
  23.  
  24. $validFiles = Get-ChildItem $filePath | Where-Object Name -Like ($showXML.tvshow.title + "*")
  25.  
  26. Write-Verbose -Message ("Found " + $validFiles.Count + " files")
  27.  
  28.  
  29. $filesToDelete = $validFiles | Where-Object LastWriteTime -LT (Get-Date | ForEach-Object {$_.AddDays(-$daysToKeep)})
  30.  
  31. Write-Verbose -Message ("Eligible files " + $filesToDelete.Count)
  32.  
  33. $filesToDelete | ForEach-Object { Remove-Item $_.FullName }
  34.  
  35. Write-Output ("FINISH: Removed " + $filesToDelete.Count + " files.")
  36.  
  37. # Restore the folder Timestamp
  38. (Get-Item $filePath).LastWriteTime = $FolderTimestamp
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement