I have two list from where i want to collect common items. I am not able to make use of $caml in my script.
My script:
Add-PSSnapin Microsoft.SharePoint.PowerShell -erroraction SilentlyContinue
[System.reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint")
$web = Get-SPWeb "site name"
$list = $web.Lists["listname1"]
$DeleteBeforeDate = [Microsoft.SharePoint.Utilities.SPUtility]::CreateISO8601DateTimeFromSystemDateTime([DateTime]::Now.AddDays(0))
$caml='<Where>
<And>
<Eq><FieldRef Name="Status" /><Value Type="Text">Retired</Value></Eq>
<Lt><FieldRef Name="Modified" /><Value IncludeTimeValue="TRUE"Type="DateTime">{0}</Value></Lt>
</And>
</Where> '-f $DeleteBeforeDate
$query=new-object Microsoft.SharePoint.SPQuery
$query.Query=$caml
$items=$list.GetItems($query)
Write-host "Total Number of Retired Items in listname1="$items.Count
Write-host "Item List"
foreach ($item in $items)
{
Write-host $($item.Name)
Write-host $($item.ID)
$CCLlist = $web.Lists["Listname2"]
$query1=new-object Microsoft.SharePoint.SPQuery
$items1=$CCLlist.GetItems($query1)
Write-host "Total Number of Items in Listname2 ="$items1.Count
Write-host "Item List"
$items1 | ForEach-Object {
$m=$_['File Title:ID'].split(";")
if($item.ID -eq $m[0])
{
Write-host $($item.ID)
Write-host $m[0]
Write-host $_['Name']
$Files = $CCLlist.Items | where {$item.ID -eq $m[0]}
foreach ($file in $Files)
{
if($file.Name -eq $_['Name'])
{
Write-Output "Deleting file $($file.Name)..."
$file.Delete()
}
}
}
}
}
$items | % {$list.GetItemById($_.Id).Delete()}
$web.Dispose()
Thanks,
Netra S W

0 commentaires:
Enregistrer un commentaire