How to Delete a Data in a List Which are Older than 'n' Number of Days

  1. Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue  
  2. [void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint")  
  3. $SiteURL = "http://mySharepoint"  
  4. $site = new-object Microsoft.SharePoint.SPSite($SiteURL)  
  5. $web= $site.OpenWeb()  
  6. $documentLibrary = $web.Lists["Your List or Library Name"]  
  7. #-10 means files which are older than 10 days will get deleted. so give the count based on your requirement  
  8. $yesterdaysDate = [Microsoft.SharePoint.Utilities.SPUtility]::CreateISO8601DateTimeFromSystemDateTime([System.DateTime]::UtcNow.AddDays(-10.0))  
  9. echo $yesterdaysDate  
  10. $query = new-object Microsoft.SharePoint.SPQuery  
  11. $query.ViewFields = "<FieldRef Name='Modified' />"  
  12. $query.Query = "<Where><Leq><FieldRef Name='Modified' /><Value Type='DateTime' IncludeTimeValue='TRUE'>" + $yesterdaysDate + "</Value></Leq></Where>"  
  13. $queryItems = $documentLibrary.GetItems($query)  
  14. $querycount = $queryItems.Count;  
  15. echo $querycount  
  16. for ($intIndex = $querycount - 1; $intIndex -gt -1; $intIndex--)  
  17. {  
  18. $queryItems.Delete($intIndex);  
  19. }  
  20. $web.Dispose()  
  21. $site.Dispose()