Thursday, September 19, 2013

SPQuery build

script make query in SP list by caml query conditions and collect items IDs to array for further manipulation.
$IDs = @()
$web = Get-SPWeb http://portal.sharepoint.com
$list = $web.Lists["LargeList"]

$spQuery = New-Object Microsoft.SharePoint.SPQuery
$spQuery.ViewAttributes = "Scope='Recursive'";
$spQuery.RowLimit = 2000
$caml = '<OrderBy Override="TRUE"><FieldRef Name="ID"/></OrderBy>' 
$spQuery.Query = $caml 

do
{
    $listItems = $list.GetItems($spQuery)
    $spQuery.ListItemCollectionPosition = $listItems.ListItemCollectionPosition
    foreach($item in $listItems)
    {
        $IDs +=$item.ID
    }
}
while ($spQuery.ListItemCollectionPosition -ne $null)

*caml query may be grabbed from SharePoint view via SP Designer without <query></query>

source info from

No comments:

Post a Comment