private775 icon

PS: Archive SP List (MWI)

private775 | PRO | 01/20/16 03:45:04 PM UTC | 0 ⭐ | 569 👁️ | Never ⏰ | []
PowerShell |

1.73 KB

|

None

|

0 👍

/

0 👎

$w = get-spweb http://acme.com/sites/mwi
$list = $w.Lists["JournalEntry"]
$destList = $w.Lists["JurnalEntryArchive"]
$archDate = get-date "Jan 1 2015"
 
 
function CheckIfArchive($list, $id, $archDate) {
   $ret = $false
   $itm = $list.GetItemById($id)
   $Submitted = -1
   $Archived = -1
   if($itm -ne $null){
     $SubmissionDate = $itm["SubmissionDate"]
     if($SubmissionDate -ne $null -and $archDate.CompareTo($SubmissionDate) -eq 1){
       $Archived = $itm["Archived"]
       if($Archived -ne $null -and $Archived -ne '' -and $Archived -eq 1){
          $ret = $true
       }
       $Submitted = $itm["Submitted"]
       if($Submitted -ne $null -and $Submitted -ne '' -and $Submitted -eq 1){
          $ret = $true
       }
     }
     
   }
   #Write-Host "$($id): $($SubmissionDate) $($Archived) $($Submitted): $($ret)"
 
   return $ret
}
 
 
function CopySpItem($sourceList, $destList, $id){
 
$destItem = $destList.Items.Add();
$sourceItem = $sourceList.GetItemById($id)
$sourceItem.Fields |%{
    $f = $_;
    if($f.ReadOnlyField -eq $false -and $f.InternalName -ne "Attachments" -and $sourceItem[$f.InternalName] -ne $null){
        $destItem[$f.InternalName] = $sourceItem[$f.InternalName];
    }
}
$destItem.Update();
}
 
 
$allIds = $list.Items|%{$_.ID}
 
foreach($id in $allIds) {
   $doDelete = CheckIfArchive $list $id $archDate
   if($doDelete) { 
      Write-Host -NoNewLine "x" 
      CopySpItem $list $destList $id
   }
   else { Write-Host -NoNewLine "." }
}
 
foreach($id in $allIds) {
   $doDelete = CheckIfArchive $list $id $archDate
   if($doDelete) { 
      Write-Host -NoNewLine "x" 
      $itm = $list.GetItemById($id)
      $itm.Delete()
   }
   else { Write-Host -NoNewLine "." }
}

Comments