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

[玩转系统] 如何使用 PnP PowerShell 检查 SharePoint 站点中是否存在列表?

作者:精品下载站 日期:2024-12-14 05:18:30 浏览:16 分类:玩电脑

如何使用 PnP PowerShell 检查 SharePoint 站点中是否存在列表?


最近,我正在开发一个 SharePoint 项目,我们想编写一个脚本来创建 SharePoint 列表。但是,它首先需要检查该列表是否已经存在。在本教程中,我将向您展示如何使用 PnP PowerShell 检查 SharePoint 网站上是否存在列表

有不同的方法可以做到这一点。我将在此处展示三种不同的方法来使用 PnP PowerShell 检查 SharePoint 中是否存在列表。

我还将向您展示如何使用 PnP PowerShell 检查 SharePoint Online 中是否存在列表项。

使用 PnP PowerShell 检查 SharePoint 站点中是否存在列表

以下是检查 SharePoint Online 网站上是否存在列表的不同方法。

1. 使用 Get-PnPList

检查 SharePoint Online 中是否存在列表的最佳方法是使用 Get-PnPList cmdlet。此 cmdlet 根据标题、ID 或 URL 检索列表。如果列表存在,则返回列表对象;否则,会抛出错误。

下面是一个脚本,用于通过 SharePoint Online 网站中的标题检查列表是否存在。它将适用于 SharePoint 列表和文档库。

$siteUrl = "https://szg52.sharepoint.com/sites/PowerShellFAQs"
Connect-PnPOnline -Url $siteUrl -Interactive
# Provide your list title
$listTitle = "Employee onboarding"

try {
    $list = Get-PnPList -Identity $listTitle
    Write-Host "List '$listTitle' exists."
} catch {
    Write-Host "List '$listTitle' does not exist."
}

我使用 VS 代码执行了上述 PowerShell 脚本,您可以在列表存在时显示该消息,就像 SharePoint Online 网站中存在该列表一样。您可以看到下面的屏幕截图:

[玩转系统] 如何使用 PnP PowerShell 检查 SharePoint 站点中是否存在列表?

2. 使用 Try-Catch 块

让我向您展示另一种使用 PnP PowerShell 检查 SharePoint Online 列表是否存在的方法。如果列表不存在,您可以使用 Try-Catch 块来处理异常。

以下脚本使用 Try-Catch 块来使用 PnP PowerShell 检查 SharePoint 列表是否存在。

# Replace with your list title
$listTitle = "Documents"

try {
    $list = Get-PnPList -Identity $listTitle
    if ($list) {
        Write-Host "List '$listTitle' exists."
    }
} catch {
    Write-Host "List '$listTitle' does not exist."
}

我执行了上面的 PowerShell 脚本,您可以在下面的屏幕截图中看到输出:

[玩转系统] 如何使用 PnP PowerShell 检查 SharePoint 站点中是否存在列表?

3. 使用客户端对象模型 (CSOM)

您还可以将 CSOM 与 PnP PowerShell 结合使用来检查 SharePoint Online 中是否存在列表。

这是使用 CSOM 的脚本:

# Replace with your list title
$listTitle = "Documents"

# Load the client context
$context = Get-PnPContext

# Get the list by title
$list = $context.Web.Lists.GetByTitle($listTitle)
$context.Load($list)

try {
    $context.ExecuteQuery()
    Write-Host "List '$listTitle' exists."
} catch {
    Write-Host "List '$listTitle' does not exist."
}

查看使用 PnP PowerShell 获取 SharePoint Online 中的所有列表字段

使用 PnP PowerShell 检查 SharePoint 列表项是否存在

我将向您展示如何使用 PnP PowerShell 检查 SharePoint Online 中是否存在列表项。我们将讨论不同的方法。

在这里,我在 SharePoint Online 网站上创建了一个列表,并向该列表添加了一些项目。该列表只有标题列。总体而言,SharePoint 列表如下所示:

[玩转系统] 如何使用 PnP PowerShell 检查 SharePoint 站点中是否存在列表?

我们将使用此 SharePoint 列表来检查列表中是否存在该项目。

方法 1:使用 Get-PnPListItem

在第一种方法中,我将向您展示如何使用 Get-PnPListItem PnP PowerShell cmdlet 获取 SharePoint 列表项,然后根据条件检查特定项目是否存在。

这是完整的脚本,其中我使用“标题”列来检查 SharePoint 列表项是否存在。

$siteUrl = "https://szg52.sharepoint.com/sites/PowerShellFAQs"
Connect-PnPOnline -Url $siteUrl -Interactive

$listTitle = "Departments"
$itemTitle = "Marketing"

$listItems = Get-PnPListItem -List $listTitle -PageSize 1000

$itemExists = $false
foreach ($item in $listItems) {
    if ($item["Title"] -eq $itemTitle) {
        $itemExists = $true
        break
    }
}

if ($itemExists) {
    Write-Host "Item exists in the list."
} else {
    Write-Host "Item does not exist in the list."
}

由于列表项已经存在,您可以看到它显示“列表中存在项目”。看下面的屏幕截图,我使用 VS code 执行了上面的 PnP PowerShell 脚本。

[玩转系统] 如何使用 PnP PowerShell 检查 SharePoint 站点中是否存在列表?

阅读使用 PnP PowerShell 检查文件是否存在于 SharePoint 文档库中

方法2:使用CAML查询

让我向您展示另一种使用 PnP PowerShell 检查 SharePoint Online 中是否存在列表项的方法。我们还可以使用 CAML。

CAML(协作应用标记语言)查询可用于直接在服务器端过滤项目,这会更加高效。

这是一个示例,我正在检查上述 SharePoint Online 列表中的同一项目。

$siteUrl = "https://szg52.sharepoint.com/sites/PowerShellFAQs"
Connect-PnPOnline -Url $siteUrl -Interactive

$listTitle = "Departments"
$itemTitle = "Marketing"

$camlQuery = "<View><Query><Where><Eq><FieldRef Name='Title'/><Value Type='Text'>$itemTitle</Value></Eq></Where></Query></View>"
$listItems = Get-PnPListItem -List $listTitle -Query $camlQuery

if ($listItems.Count -gt 0) {
    Write-Host "Item exists in the list."
} else {
    Write-Host "Item does not exist in the list."
}

我使用 VS code 执行了上述 PnP PowerShell 脚本,您可以在下面的屏幕截图中看到输出。

[玩转系统] 如何使用 PnP PowerShell 检查 SharePoint 站点中是否存在列表?

方法 3:使用 Get-PnPListItem 和过滤器

让我向您展示另一种检查 SharePoint 列表项是否存在的有效方法。我们可以将 -Filter 参数与 Get-PnPListItem 结合使用,直接筛选 SharePoint Online 列表中的项目。

这是一个例子。

$siteUrl = "https://szg52.sharepoint.com/sites/PowerShellFAQs"
Connect-PnPOnline -Url $siteUrl -Interactive
$listTitle = "Departments"
$itemTitle = "Marketing"
$listItems = Get-PnPListItem -List $listTitle -Filter "Title eq '$itemTitle'"
if ($listItems.Count -gt 0) {
    Write-Host "Item exists in the list."
} else {
    Write-Host "Item does not exist in the list."
}

您可以使用这三种方法中的任何一种来使用 PnP PowerShell 检查列表项是否存在于 SharePoint Online 列表中。

结论

在本教程中,我使用不同的方法和示例解释了如何使用 PnP PowerShell 检查 SharePoint 网站中是否存在列表。我建议使用 Get-PnPList cmdlet 通过 PnP PowerShell 检查 SharePoint Online 列表是否存在。

如果您还有任何疑问,请告诉我。

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

取消回复欢迎 发表评论:

关灯