¿Cómo comprobar si existe una carpeta en SharePoint Online usando PnP PowerShell?
Recientemente, trabajé en un script de PowerShell para comprobar si existe una carpeta en SharePoint Online usando PnP PowerShell. Pensé en compartir esto en este tutorial.
Déjame mostrártelo con ejemplos reales.
Compruebe si existe una carpeta en SharePoint Online usando PnP PowerShell
Tengo una biblioteca de documentos de SharePoint en la que he creado una carpeta. La siguiente captura de pantalla muestra esto.
Ahora, usaremos varios métodos para verificar si la carpeta existe en la biblioteca de documentos de SharePoint usando PnP PowerShell.
Método 1: usar Get-PnPFolder
En PnP PowerShell, puede usar Get-PnPFolder para verificar si existe una carpeta en un sitio de SharePoint Online. Si la carpeta existe, devuelve el objeto de la carpeta; de lo contrario, no devuelve nada.
Aquí está el script PnP PowerShell completo.
$siteUrl = "https://szg52.sharepoint.com/sites/PowerShellFAQs"
Connect-PnPOnline -Url $siteUrl -Interactive
# Define the folder path
$folderPath = "/sites/PowerShellFAQs/Shared Documents/Accounting"
# Check if the folder exists
$folder = Get-PnPFolder -Url $folderPath -ErrorAction SilentlyContinue
if ($folder) {
Write-Host "Folder exists."
} else {
Write-Host "Folder does not exist."
}Una vez que ejecute el script PnP PowerShell anterior, mostrará el mensaje "La carpeta existe". ya que la carpeta existe en la biblioteca de documentos de SharePoint Online. Puedes ver la captura de pantalla a continuación:
Leer Comprobar si existe un sitio de SharePoint usando PnP PowerShell
Método 2: usar Resolve-PnPFolder
El cmdlet Resolve-PnPFolder es otro método en PnP PowerShell que no solo verifica si existe una carpeta sino que también la crea si no existe.
Aquí hay un ejemplo.
$siteUrl = "https://szg52.sharepoint.com/sites/PowerShellFAQs"
Connect-PnPOnline -Url $siteUrl -Interactive
# Define the folder path
$folderPath = "/sites/PowerShellFAQs/Shared Documents/MyFolder"
# Resolve the folder (creates if not exists)
$folder = Resolve-PnPFolder -SiteRelativePath $folderPath
if ($folder) {
Write-Host "Folder exists or has been created successfully."
} else {
Write-Host "Failed to resolve or create the folder."
}Una vez que ejecute el script anterior, podrá ver el resultado en la captura de pantalla a continuación.
Método 3: usar Get-PnPListItem
Permítame mostrarle otro método para comprobar si existe una carpeta en SharePoint Online.
Puede utilizar el cmdlet Get-PnPListItem para buscar la carpeta dentro de la biblioteca de documentos de SharePoint.
A continuación se muestra un ejemplo y el script PnP PowerShell completo.
$siteUrl = "https://szg52.sharepoint.com/sites/PowerShellFAQs"
Connect-PnPOnline -Url $siteUrl -Interactive
# Define the document library and folder name
$libraryName = "Shared Documents"
$folderName = "Accounting"
# Get the list items in the document library
$listItems = Get-PnPListItem -List $libraryName -Fields "FileLeafRef" -PageSize 1000
# Check if the folder exists
$folderExists = $listItems | Where-Object { $_["FileLeafRef"] -eq $folderName }
if ($folderExists) {
Write-Host "Folder exists."
} else {
Write-Host "Folder does not exist."
}Ejecuté el script PnP PowerShell anterior usando código VS y puedes ver el resultado en la siguiente captura de pantalla:
Conclusión
Espero que pueda utilizar cualquiera de estos tres métodos para comprobar si existe una carpeta en una biblioteca o lista de documentos de SharePoint Online. Recomendé usar el método Get-PnPFolder para verificar si existe una carpeta en SharePoint.
Si todavía tienes alguna pregunta, no dudes en dejar un comentario a continuación, lo comprobaré y responderé.



