繁体   English   中英

Sharepoint 在线 - MoveFile - pnp.powershell 状态更新

[英]Sharepoint online - MoveFile - pnp.powershell Status Updates

我正在尝试将文件夹/文件从一个共享点站点移动到另一个共享点站点,但似乎无法在我的 powershell 脚本中使用 Receive-PnPCopyMoveJobStatus

现在,我可以监视文件/文件夹移动的唯一方法是监视源的回收站的更改。 我希望能够按需或始终在开放的 powershell 中取得进展。 理想情况下,我希望看到一个百分比符号,甚至是一个详细的选项。

以下是我整理的内容:

#Config Variables
$SiteURL = "https://<site>.sharepoint.com/
$SourceFolderURL= "sites/<site name>/<document library name>/<Folder or file location>"
$TargetFolderURL = "sites/<site name>/<document library name>"

#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -interactive

#Sharepoint Copy/Move operation feedback
$Test = "Move-PnPFile -SourceUrl $SourceFolderURL -TargetUrl $TargetFolderURL -Overwrite -noWait"
$jobStatus = "Receive-PnPCopyMoveJobStatus -Job $Test"

if($jobStatus.JobState -eq 0)
{
  Write-Host "Job finished"
}

参考: https : //docs.microsoft.com/en-us/powershell/module/sharepoint-pnp/receive-pnpcopymovejobstatus?view=sharepoint-ps

我没有成功运行这个。 当我填写站点名称、库名称和实际站点时,我得到的结果看起来已经完成,但没有反馈,文件也没有移动。 所以基本上什么也没发生。

文件/文件夹移动的作用如下:

#Config Variables
$SiteURL = "https://<site>.sharepoint.com/"
$SourceFolderURL= "sites/<site name>/<document library>/<folder name>"
$TargetFolderURL = "sites/<site name>/<document library>"
 
#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -interactive
 
#sharepoint online powershell move folder
Move-PnPFile -SourceUrl $SourceFolderURL -TargetUrl $TargetFolderURL -overwrite 


#Read more: https://www.sharepointdiary.com/2017/06/how-to-move-folder-in-sharepoint-online.html#ixzz7Bkp822M1

任何有关更正此脚本的帮助,或查看 SharePoint 上复制或移动操作进度的其他方法,将不胜感激!

源 url 应该类似于"<document library>/<file name>"请尝试以下脚本

$SiteURL = "https://<site>.sharepoint.com/sites/<sitesname>
$SourceFolderURL= "<document library name>/<file name>"
$TargetFolderURL = "<document library name>/<target file name>"

$job = Move-PnPFile -SiteRelativeUrl $SourceFolderURL -TargetUrl $TargetFolderURL -Overwrite
$jobStatus = Receive-PnPCopyMoveJobStatus -Job $result
if($jobStatus.JobState == 0)
{
  Write-Host "Job finished"
}

您的非工作脚本包含:

$Test = "Move-PnPFile -SourceUrl $SourceFolderURL -TargetUrl $TargetFolderURL -Overwrite -noWait"
$jobStatus = "Receive-PnPCopyMoveJobStatus -Job $Test"

这两个变量值都是字符串。 它们除了存在之外什么都不做,并且不会导致任何命令运行。 $jobStatus.JobState将始终为 null 并且永远不会为零,因为 JobState 不是字符串的属性,因此永远不会满足 if 条件。

如果您想运行这些命令,请不要将它们写为双引号内的字符串,而要像您所引用的文档中的那样。 您实际上可以运行它们,并捕获它们的输出,例如

$jobStatus = Receive-PnPCopyMoveJobStatus -Job $Test

您也可以复制并粘贴示例并更新参数值(尽管第二行的变量名称似乎有误,但您已修复)。 命令运行后,您可能会遇到更多错误,这应该会提供更多诊断信息。 确保您在同一脚本中执行所有连接、请求移动和检索状态信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM