当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] SharePoint Online:使用 PowerShell 中的 New-PnPBatch 更快地批量添加/更新/删除

作者:精品下载站 日期:2024-12-14 21:36:07 浏览:13 分类:玩电脑

SharePoint Online:使用 PowerShell 中的 New-PnPBatch 更快地批量添加/更新/删除


PnP PowerShell 模块提供了使用 New-PnPBatch cmdlet 在 SharePoint Online 中批量执行批量操作的功能。当通过创建、编辑或删除操作处理较大的列表时,这非常有用。 PnP Batch 操作得到加速并相对减少执行时间并提供更快的性能。所以现在,您可以批量执行此类操作,而不是单独执行每个命令。

[玩转系统] SharePoint Online:使用 PowerShell 中的 New-PnPBatch 更快地批量添加/更新/删除

批量添加 SharePoint Online 列表项:

我尝试向列表中插入 1000 个项目,使用新的 PnP PowerShell 批处理功能只花了 25 秒。而在通常的 Add-PnPListItem 方法中,将 1000 个项目添加到列表需要 250 秒。这是一个例子:


$SiteURL = "https://Crescent.sharepoint.com/sites/Operations"
$ListName = "Random"

#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Interactive

#Create a New Batch
$Batch = New-PnPBatch

#Add List Items
For($i=1; $i-le 1000; $i++)
{
    Add-PnPListItem -List $ListName -Values @{"Title" = $i} -Batch $Batch
}

#Send Batch to the server
Invoke-PnPBatch -Batch $Batch

在这里,我们没有使用 Add-PnPListItem cmdlet 将每个请求直接发送到 SharePoint Online 网站,而是使用 $Batch 变量对它们进行批处理,然后使用 Invoke-PnPBatch cmdlet 将批处理发送到 SharePoint Online。

批量更新SharePoint Online列表项:

处理大量数据时,处理时间可能是一场噩梦。幸运的是,与传统方法相比,PnP PowerShell 批处理 cmdlet 将执行时间减少了约 10 倍。批处理方法不仅可以减少执行时间,还可以减少向服务器发送的请求数量,从而避免 SharePoint Online 中的限制问题。


#Create a New Batch
$Batch = New-PnPBatch

#Update List Items
For($i=1; $i-le 1000; $i++)
{    
    Set-PnPListItem -List $ListName -Identity $i -Values @{"Title" = "Updated Item:"+$i} -Batch $Batch
}

#Send Batch to the server
Invoke-PnPBatch -Batch $Batch

如何批量删除列表项?

从列表中删除 1000 个项目大约需要 50 秒。值得一提的是,目前并非所有 cmdlet 都支持批处理操作,但我想相关 cmdlet 很快就会添加对批处理的支持。


$SiteURL = "https://Crescent.sharepoint.com/sites/Operations"
$ListName = "Random"

#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Interactive

#Get List Items to Delete
$ListItems =  Get-PnPListItem -List $ListName -PageSize 500

#Create a New Batch
$Batch = New-PnPBatch

#Delete All List Items
ForEach($Item in $ListItems)
{    
     Remove-PnPListItem -List $ListName -Identity $Item.ID -Batch $Batch
}

#Send Batch to the server
Invoke-PnPBatch -Batch $Batch

收到“New-PnPBatch 无法识别”错误?好吧,更新您的 PowerShell 模块!如果要创建大量虚拟文件用于测试目的,请使用:如何使用 PowerShell 在 SharePoint Online 中批量创建文件?

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯