There is a virtual situation :
You have no archival / expiration policies setup for your list and on and off you want to delete everything older than 30 days . What you will do ?
This sample power shell solves your purpose and fulfill example for offset parameter in powershell :
$WebURL = "http://mysitecollection:100/myWeb";
$spWeb = Get-SPWeb -Identity $WebURL;
$sList = $spWeb.GetList("/myWeb/Lists/myList");
write-host $sList.Title;
$camlQuery = "<Where><Lt><FieldRef Name='Modified' /><Value Type='DateTime'><Today OffsetDays=-30 /></Value></Lt></Where>";
$spQuery = new-object Microsoft.SharePoint.SPQuery ;
$spQuery.Query = $camlQuery ;
$spQuery.ViewFields = "<FieldRef Name='ID' />";
$ToBeDeleted = $sList.GetItems() ;
$ToBeDeleted = $sList.GetItems($spQuery) ;
$i=0;
$ToBeDeleted | ForEach-Object {
$i++;
Write-Host $_.ID -foregroundcolor cyan
$deaditem= $sList.GetItemById($_.ID); # if you wish you may decide to recycle instead to recycle bin
$deaditem.Delete();
}
write-host $i;
No comments:
Post a Comment