Advertisement
private775

SharePoint: delete files in batch

Dec 18th, 2014
303
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ###################### DELETE FILES IN BATCH
  2. $w = Get-Spweb http://win2008r2sp2010.w2k8.dev/pressclippings
  3. $list =  $w.Lists.TryGetList("Documents")
  4. $query = New-Object Microsoft.SharePoint.SPQuery;
  5. $query.ViewAttributes = "Scope='Recursive'";
  6. $query.RowLimit = 1000;
  7. $cmdFormat = "  <Method ID=`"Del{0}`">
  8.    <SetList Scope=`"Request`">"  + $list.ID + "</SetList>`
  9.    <SetVar Name=`"Cmd`">Delete</SetVar>`
  10.    <SetVar Name=`"ID`">{0}</SetVar>`
  11.     <SetVar Name=`"owsfileref`">{1}</SetVar>
  12.  </Method>`r`n"
  13. $len = 0;
  14. do {
  15.     $listItems = $list.GetItems($query)
  16.     $len = $listItems.Count
  17.     if($len -gt 0){
  18.         $cmdString = "<?xml version=`"1.0`" encoding=`"UTF-8`"?>`r`n<Batch OnError=`"Continue`">`r`n"
  19.  
  20.         $listItems|%{ $cmdString += [string]::Format($cmdFormat, $_.ID, $_[[Microsoft.Sharepoint.SPBuiltInFieldId]::FileRef]) }
  21.         $cmdString += "</Batch>`r`n"
  22.  
  23.         [Void]$w.ProcessBatchData($cmdString)
  24.         Write-Host "Deleted $($len) items"
  25.     }
  26. } while($len -gt 0)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement