Powershell Batch Delete

fredericdietrich By On 28/09/2018

In Powershell

param($url="http://fdi-sp2013-1:8080/sites/testJS_publishing2",
$listTitle="testDelete")
 
clear;
if ((Get-PSSnapin "Microsoft.SharePoint.PowerShell" -ErrorAction SilentlyContinue) -eq $null) {
Add-PSSnapin "Microsoft.SharePoint.PowerShell"
}
#get the spweb
$web = Get-SPWeb -Identity $url
#get list by title
$list = $web.Lists[$listTitle];
$list.Title
 
#your caml query
$query = New-Object -TypeName Microsoft.SharePoint.SPQuery
$rowLimit= 100
 
$query.ViewXml = "<View><ViewFields><FieldRef Name='ID'><FieldRef Name='FileRef'></FieldRef></FieldRef></ViewFields><Query><Where></Eq></Where></Query><RowLimit>$($rowLimit)</RowLimit></View>";
 
$items = $list.GetItems($query)
 
#number items
"items.Count : $($items.Count)"
 
#the number of items that will be deleted
$batch = "<?xml version=""1.0"" encoding=""UTF-8""?><Batch>";
foreach($item in $items)
{
$batch +="<Method><SetList Scope=""Request"">$($list.ID)</SetList><SetVar Name=""ID"">$($item.Id)</SetVar><SetVar Name=""owsfileref"">$($item["FileRef"])</SetVar><SetVar Name=""Cmd"">Delete</SetVar></Method>"
$item.Id
$item["FileRef"]
}
$batch +="</Batch>"
 
#proceed to deletion
$web.ProcessBatchData($batch);
$web.Dispose()
Write-Host "list is empty bu warnig limit in code rowLimit $($rowLimit)"
 
  • 1 vote. Average rating: 5 / 5.