Copie elementos de una lista a otra en SharePoint Online usando PnP PowerShell
Recientemente, uno de mis clientes quería que copiara elementos de una lista de SharePoint Online a otra. PnP PowerShell es una de las mejores soluciones para esto. En este tutorial, le mostraré cómo copiar elementos de una lista a otra en SharePoint Online usando PnP PowerShell.
Copie elementos de una lista a otra en SharePoint Online usando PnP PowerShell
Este es un requisito muy común entre los desarrolladores cuando trabajan con elementos en una lista de SharePoint Online. Nadie utiliza una herramienta de terceros para esto, ya que es costosa. Entonces, podemos usar PnP PowerShell.
Aquí, he creado un sitio de SharePoint Online que tiene una lista personalizada con tres columnas debajo:
- Título
- Descripción
- Cantidad
También agregué elementos masivos a la lista de SharePoint. La lista tiene más de 5000 elementos. Puedes ver cómo se ve la lista:
Creé la misma lista en otro sitio de SharePoint Online y ahora copiaremos de la lista de origen a la lista de destino en otro sitio de SharePoint.
Siga los pasos a continuación para copiar elementos de una lista a otra en SharePoint Online usando PnP PowerShell.
- Conéctese al sitio de SharePoint Online: Primero, debe conectarse a su sitio de SharePoint Online mediante PnP PowerShell. Utilice el siguiente comando para conectarse:
Connect-PnPOnline -Url "https://yourtenant.sharepoint.com/sites/yoursite" -InteractiveEste comando le pedirá que inicie sesión con sus credenciales de SharePoint Online.
- Obtener elementos de la lista de origen: a continuación, recupere los elementos de la lista de origen. Reemplace "SourceList" con el nombre de su lista de fuentes:
$sourceListItems = Get-PnPListItem -List "SourceList"- Copiar elementos a la lista de destino: ahora, recorra cada elemento en la lista de origen y agréguelo a la lista de destino. Reemplace "DestinationList" con el nombre de su lista de destinos:
foreach ($item in $sourceListItems) {
Add-PnPListItem -List "DestinationList" -Values @{
Title = $item["Title"]
Description = $item["Description"]
Quantity = $item["Quantity"]
}
}Aquí puede ver el script PnP PowerShell completo para copiar elementos de una lista de SharePoint Online a otra.
# Connect to SharePoint Online
Connect-PnPOnline -Url "https://szg52.sharepoint.com/sites/PowerPlatformFAQs" -Interactive
$sourceListItems = Get-PnPListItem -List "LargeInventoryList"
foreach ($item in $sourceListItems) {
Add-PnPListItem -List "DestinationLargeInventoryList" -Values @{
Title = $item["Title"]
Description = $item["Description"]
Quantity = $item["Quantity"]
}
}Ejecuté el script de PowerShell anterior y copié los elementos de la lista de origen a la lista de destino.
También puede ver la lista de SharePoint de destino con los elementos copiados.
Así es como copiar elementos de una lista a otra en el mismo sitio de SharePoint Online usando PnP PowerShell.
Copie elementos de la lista de un sitio de SharePoint a otro sitio de SharePoint usando PnP PowerShell
En el ejemplo anterior, la lista de origen y destino se presentan en el mismo sitio de SharePoint.
A veces, es posible que tenga que copiar elementos de un sitio de SharePoint a otro sitio de SharePoint Online. Para esos casos, sólo necesita modificar el script como se muestra a continuación:
# Connect to the Source SharePoint Site
Connect-PnPOnline -Url "https://szg52.sharepoint.com/sites/PowerPlatformFAQs" -Interactive
# Retrieve Items from the Source List
$sourceListItems = Get-PnPListItem -List "LargeInventoryList"
# Connect to the Destination SharePoint Site
Connect-PnPOnline -Url "https://szg52.sharepoint.com/sites/PowerShellFAQs" -Interactive
# Copy Items to the Destination List
foreach ($item in $sourceListItems) {
Add-PnPListItem -List "LargeInventoryList" -Values @{
Title = $item["Title"]
Description = $item["Description"]
Quantity = $item["Quantity"]
}
}Puedes ver la captura de pantalla a continuación; Después de ejecutar el script anterior, copió la lista de elementos del sitio de origen de SharePoint al sitio de destino de SharePoint.
Copie elementos de SharePoint de una lista a otra usando PnP PowerShell (procesamiento por lotes)
A continuación se muestra una secuencia de comandos PnP PowerShell para copiar elementos de una lista de SharePoint a otra usando el parámetro -PageSize 500 para manejar listas más grandes de manera eficiente.
# Define variables
$sourceSiteUrl = "https://szg52.sharepoint.com/sites/PowerPlatformFAQs"
$targetSiteUrl = "https://szg52.sharepoint.com/sites/PowerShellFAQs"
$sourceListName = "LargeInventoryList"
$targetListName = "LargeInventoryList"
# Connect to the source SharePoint site
Connect-PnPOnline -Url $sourceSiteUrl -Interactive
# Get list items from the source list with paging
$items = Get-PnPListItem -List $sourceListName -PageSize 500 -Fields "Title", "Description", "Quantity"
# Connect to the target SharePoint site
Connect-PnPOnline -Url $targetSiteUrl -Interactive
# Iterate through each item and add it to the target list
foreach ($item in $items) {
$itemValues = @{
"Title" = $item["Title"]
"Description" = $item["Description"]
"Quantity" = $item["Quantity"]
}
Add-PnPListItem -List $targetListName -Values $itemValues
}Este script garantiza que las listas grandes se manejen de manera eficiente al paginar los elementos en lotes de 500.
Ejecuté el script de PowerShell anterior usando código VS; Puede ver el resultado en la captura de pantalla a continuación.
A continuación se explica cómo copiar elementos de una lista grande de SharePoint a otra mediante el procesamiento por lotes de PnP PowerShell.
Conclusión
En este tutorial, he explicado cómo copiar elementos de una lista de SharePoint a otra usando PnP PowerShell. También expliqué cómo copiar elementos de la lista de un sitio de SharePoint a otro sitio de SharePoint. También vimos cómo copiar elementos de una lista grande de SharePoint a otra usando PnP PowerShell.




