簡體   English   中英

從 SharePoint Online 列表中刪除所有項目

[英]Delete all items from SharePoint Online list

我有一個包含大約 12000 個項目的列表的 SPO 站點。

我需要每天從 Excel 文件刷新這些項目。

我已經設置了一個 Flow 來刪除所有項目,但我面臨一些問題:

  • 測試時刪除 5000 個項目花了我整整一個小時(我添加了一個 GetItems 步驟,行數為 5000)。
  • 即使刪除了所有 5000 個項目,某些錯誤也會導致流程Fail

快速刪除所有項目的最佳方法是什么?

我建議你使用 PowerShell 來實現它。

Add-Type -Path "c:\Program Files\Common Files\microsoft shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.dll" 
Add-Type -Path "c:\Program Files\Common Files\microsoft shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.Runtime.dll"

$SiteUrl = "https://tenant.sharepoint.com/sites/team"
$UserName="admin@tenant.onmicrosoft.com"
$Password ="xxx"
$ListTitle="CustomList";

#Setup Credentials to connect
$context = new-object Microsoft.SharePoint.Client.ClientContext($siteUrl)
$context.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($UserName,(ConvertTo-SecureString $Password -AsPlainText -Force))

$list = $context.Web.Lists.GetByTitle($ListTitle)
$context.Load($list)
$context.ExecuteQuery()

$continue = $true
while($continue)
{
    Write-Host -NoNewline "." -foregroundcolor black -backgroundcolor yellow
    $query = [Microsoft.SharePoint.Client.CamlQuery]::CreateAllItemsQuery(100, "ID")
    $listItems = $list.GetItems($query)
    $context.Load($listItems)
    $context.ExecuteQuery()       
    if ($listItems.Count -gt 0)
    {
        for ($i = $listItems.Count-1; $i -ge 0; $i--)
        {
            $listItems[$i].DeleteObject()
        }
        $context.ExecuteQuery()
    }
    else
    {
        $continue = $false;
    }
}
Write-Host "All listitems deleted from list." -foregroundcolor black -backgroundcolor green 

如果您想每天運行代碼,我們可以創建一個 Windows 任務計划程序並每天運行 PowerShell。 請參閱: 如何使用任務計划程序自動化 PowerShell 腳本

在我的特定場景中,我有一個帶有 OrganizationName 的列,其值幾乎以每個字母開頭。

我所做的是如下:

  • 我聲明了一個包含所有字母的數組。
  • 對每個數組進行了應用。
  • 在循環中,我查詢了 OrganizationName 以特定字母開頭的項目列表
  • 將檢索到的項目添加到數組中
  • 對於數組中的每個項目,將其從列表中刪除

使用字母數組,我能夠解決 5000 個項目的閾值限制。 每個字母最多可以有 1500 個名字。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM