Búsqueda de sitios web

SharePoint Online: PowerShell para crear carpetas en masa en una biblioteca de documentos a partir de un archivo CSV


Requisito: Crear varias carpetas en una biblioteca de documentos a partir de un archivo CSV en SharePoint Online.

PowerShell para crear carpetas de forma masiva a partir de un archivo CSV en SharePoint Online:

¿Está buscando crear varias carpetas en SharePoint Online, pero no quiere hacerlo una a la vez? Tal vez quieras crear una estructura de carpetas para un nuevo proyecto u ordenar tus documentos en diferentes categorías. Este artículo le mostrará cómo usar PowerShell para crear varias carpetas rápidamente.

¡Pude crear varias carpetas en una biblioteca de documentos de SharePoint Online! Este script de PowerShell toma nombres de carpetas de un archivo CSV y crea carpetas en la biblioteca de documentos especificada.


#Config Variables
$SiteURL = "https://crescent.sharepoint.com/sites/Ops"
$CSVFilePath = "C:\Temp\Folders.csv"
$LibraryName = "Documents"

Try {
    #Connect to PnP Online
    Connect-PnPOnline -Url $SiteURL -Interactive
    $Web = Get-PnPWeb

    #Get the Document Library and its site relative URL
    $Library = Get-PnPList -Identity $LibraryName -Includes RootFolder
    If($Web.ServerRelativeUrl -eq "/")
    {
        $LibrarySiteRelativeURL = $Library.RootFolder.ServerRelativeUrl
    }
    else
    {
        $LibrarySiteRelativeURL = $Library.RootFolder.ServerRelativeUrl.Replace($Web.ServerRelativeUrl,'')
    }

    #Get the CSV file
    $CSVFile = Import-Csv $CSVFilePath
 
    #Read CSV file and create folders
    ForEach($Row in $CSVFile)
    {
        #Replace Invalid Characters from Folder Name, If any
        $FolderName = $Row.FolderName
        $FolderName = [RegEx]::Replace($FolderName, "[{0}]" -f ([RegEx]::Escape([String]'\"*:<>?/\|')), '_')

        #Frame the Folder Name
        $FolderURL = $LibrarySiteRelativeURL+"/"+$FolderName

        #Create Folder if it doesn't exist
        Resolve-PnPFolder -SiteRelativePath $FolderURL | Out-Null
        Write-host "Ensured Folder:"$FolderName -f Green
    }
}
catch {
    write-host "Error: $($_.Exception.Message)" -foregroundcolor Red
}

Esto le ahorrará mucho tiempo y garantizará una estructura de carpetas más coherente en todo su sitio. Aquí está mi formato de archivo CSV:

Puede descargar el archivo CSV aquí:

PowerShell para crear carpetas y subcarpetas a partir de un archivo CSV en SharePoint Online

¿Qué tal crear carpetas y subcarpetas en varias bibliotecas de documentos? Aquí está mi formato CSV:


#Config Variables
$SiteURL = "https://crescent.sharepoint.com/sites/marketing"
$CSVFilePath = "C:\Temp\Folders.csv"
 
Try {
    #Connect to PnP Online
    Connect-PnPOnline -Url $SiteURL -Interactive

    #Get the CSV file
    $CSVFile = Import-Csv $CSVFilePath
  
    #Read CSV file and create folders
    ForEach($Row in $CSVFile)
    { 
        #Create Folder if it doesn't exist
        Resolve-PnPFolder -SiteRelativePath $Row.FolderSiteRelativeURL | Out-Null
        Write-host "Ensured Folder:"$Row.FolderSiteRelativeURL -f Green
    }
}
catch {
    write-host "Error: $($_.Exception.Message)" -foregroundcolor Red
}

Si desea clonar una estructura de carpetas local en su sitio de SharePoint Online, use: Cargar estructura de carpetas en SharePoint Online usando PowerShell

Artículos relacionados