我正在编写一个PowerShell脚本,该脚本将所有文件从一个文档库复制到SharePoint Online中的另一个文件库。
我无法理解这种行为。
当我复制整个文件夹时,所有文件都将被复制并且可以正常工作:
Copy-PnPFile -SourceUrl "Old Library/" -TargetUrl "NewLibrary/"
但这对我没有帮助,因为我需要记录每个文件,而我不能这样做。所以我需要分别复制每个文件。
分别复制文件时,出现错误消息“找不到文件”:
Copy-PnPFile -SourceUrl "Old Library/item.docx" -TargetUrl "NewLibrary/item.docx"
我已经尝试使用其他路径:
任何人都知道可能是什么问题? 如何复制文件并记录单个文件(名称,路径,成功)?
答案 0 :(得分:1)
Copy-PnPFile cmdlet无法正常工作,并且PnP PowerShell GitHub存储库中出现了问题。
这已经进行了大约一个月,但是应该在不久后引入修复程序。
答案 1 :(得分:0)
我也遇到了同样的问题,发现只有一种可行的方法可以通过Copy-PnPFile在同一租户中跨网站集复制文件:复制整个根文件夹:
Copy-PnPFile -SourceUrl Documents -TargetUrl /sites/otherproject/Documents -SkipSourceFolderName
但是,它也会尝试复制allitems.aspx。因此完整的解决方案是这样:
$error = $null
Copy-PnPFile -SourceUrl Documents -TargetUrl /sites/otherproject/Documents -SkipSourceFolderName -ErrorAction SilentlyContinue -ErrorVariable error
if ($error -and !$error.Exception.Message.ToLower().Contains("allitems.aspx")) {
throw $error
}