【问题标题】:Upload multiple files from multiple folders to SharePoint online using Powershell使用 Powershell 将多个文件夹中的多个文件在线上传到 SharePoint
【发布时间】:2019-01-07 09:02:52
【问题描述】:

对 SharePoint online 和 Powershell 来说都是新手,并认为这将是一项非常简单的任务,但我正在寻求帮助。

我有一个客户,他的照片存储在文件共享的多个文件夹中,他们希望将其移动到 SharePoint。他们希望使用文件退出位置的文件夹名称作为元数据来简化搜索。

这是我正在使用的脚本,但运气不佳。

$connection = Connect-PnPOnline https://somecompany.sharepoint.com -Credentials $me -ReturnConnection 

$files = Get-ChildItem "F:\some data" -Recurse

foreach ($file in $files)
  {Add-PnPFile -Path $file.FullName -Folder Photos -Values @{"Title" = $file.Name;} -Connection $connection}

我遇到的问题是,这不会递归文件夹并返回“找不到本地文件”

如果我能做到这一点,我可以继续将当前文件夹名称作为变量获取到元数据中。

我很确定这对于专家来说将是一项简单的任务,但可惜我不是。任何帮助将不胜感激。

谢谢 贾森

【问题讨论】:

  • 所以...什么没有按预期工作? [grin] 看起来您的元数据在-Values 参数输入中......并且只显示文件名,而不是文件所在的文件夹。您想要整个目录名称还是只是直接的父目录名称?
  • 两件事我无法正常工作对不起。我无法让它递归并上传一系列文件夹下的所有文件。我不需要复制文件夹,只需将这些文件夹下的所有文件复制到一个库中即可。其次,我无法获得将当前文件夹用作元数据的嵌套(或实际上是变量)的权利。
  • $File.Directory.Name 会给你包含目录的名称,而不是路径的更高级别部分。 ///// 看起来您需要指定-Folder 才能将文件放在sharepoint 上的一个文件夹中。 ///// 很明显,我无法访问共享点...我只是在阅读他的 MSDocs 站点信息。 [咧嘴]
  • 一个额外的点......你可能会将这两点添加到你的 OP 中,这样其他人就会看到它们而不是唠叨你。 [咧嘴]
  • 谢谢李。我已经更新了我原来的问题。就 -Folder 而言,它已经存在,如果我手动将子文件夹添加到路径并删除 -Recurse,则上传工作正常。现在测试目录名称。

标签: powershell sharepoint-online


【解决方案1】:

这似乎对我有用,所以会回答这个问题。如果有更简单的方法或更清洁的方法,并且如果有人知道如何更深入一层,那么对于 cmets 感到高兴。

$connection = Connect-PnPOnline https://somecompany.sharepoint.com -Credentials $me -ReturnConnection
$LocalFolders = get-childitem -path "c:\test" | where-object {$_.Psiscontainer} | select-object FullName

foreach ($folder in $localfolders) {

$files = get-childitem -Path $folder.FullName -Recurse 

foreach ($file in $files) {

$value1 = $file.Directory.Name

Add-PnPFile -Path $file.FullName -Folder Photos -Values @{"Title" = $file.Name;"SubCat" = $value1;} -Connection $connection 
        }
}

【讨论】:

    【解决方案2】:

    你可以试试下面的脚本,你需要安装pnp powershell

    function UploadDocuments(){
    Param(
            [ValidateScript({If(Test-Path $_){$true}else{Throw "Invalid path given: $_"}})] 
            $LocalFolderLocation,
            [String] 
            $siteUrl,
            [String]
            $documentLibraryName
    )
    Process{
            $path = $LocalFolderLocation.TrimEnd('\')
    
            Write-Host "Provided Site :"$siteUrl -ForegroundColor Green
            Write-Host "Provided Path :"$path -ForegroundColor Green
            Write-Host "Provided Document Library name :"$documentLibraryName -ForegroundColor Green
    
              try{
                    $credentials = Get-Credential
    
                    Connect-PnPOnline -Url $siteUrl -CreateDrive -Credentials $credentials
    
                    $file = Get-ChildItem -Path $LocalFolderLocation -Recurse
                    $i = 0;
                    Write-Host "Uploading documents to Site.." -ForegroundColor Cyan
                    (dir $path -Recurse) | %{
                        try{
                            $i++
                            if($_.GetType().Name -eq "FileInfo"){
                              $SPFolderName =  $documentLibraryName + $_.DirectoryName.Substring($path.Length);
                              $status = "Uploading Files :'" + $_.Name + "' to Location :" + $SPFolderName
                              Write-Progress -activity "Uploading Documents.." -status $status -PercentComplete (($i / $file.length)  * 100)
                              $te = Add-PnPFile -Path $_.FullName -Folder $SPFolderName
                             }          
                            }
                        catch{
                        }
                     }
                }
                catch{
                 Write-Host $_.Exception.Message -ForegroundColor Red
                }
    
      }
    }
    
    
    UploadDocuments -LocalFolderLocation C:\Lee\Share -siteUrl https://tenant.sharepoint.com/sites/Developer -documentLibraryName MyDOc4
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-17
      • 1970-01-01
      • 1970-01-01
      • 2017-02-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多