我需要将大约 10,000 个文件从一个文档库移动到同一网站集中的另一个文档库。我相信 powershell 是执行此操作的最佳方法。

我找到了以下文章: http://blog.isaacblum.com/2011/10/04/spfilecollection-class-copy-files-to-another-document-library/#respond 建议了一种方法来执行此操作,但是我不确定如何调整此脚本(我第一次通过此项目接触 Powershell)。

我尝试了以下方法无济于事:

$PSSnapin = Add-PsSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue | Out-Null
clear

$org = "hhttp://farm/sitecollection/Document Library Source/Forms/AllItems.aspx"
$dest = "hhttp://farm/sitecollection/Document Library Destination/Forms/AllItems.aspx"

$orgLibrary = (Get-SPWeb $org).Folders["Documents"]
$destLibrary = (Get-SPWeb $dest).Folders["Documents"]
$destFiles = $destLibrary.Files
foreach ($file in $orgLibrary.Files)
{
    $curFile = $file.OpenBinary()
    $destURL = $destFiles.Folder.Url + "/" + $file.Name
    $destFiles.Add($destURL, $curFile, $true)
}

有没有其他方法可以做到这一点?请注意,我使用的是 MOSS2007 和 Powershell 2.0,而不是 SharePoint 2010。

更新/半答案:

根据下面 x0n 的帖子,SharePoint 2007(仅 2010)不支持此功能。我在这个线程之外收到了以下建议,这是相关的,将来应该可以帮助其他人:

最佳答案

我对您一无所获并不感到惊讶:Microsoft.SharePoint.PowerShell 管理单元仅适用于 SharePoint 2010,在 SharePoint 2007 服务器上不可用。

坦率地说,最简单的方法是打开 Internet Explorer,导航到源文档库并打开“资源管理器 View ”。选择所有文件,然后复制(ctrl+c)。打开另一个 IE 窗口,对目标文档库做同样的事情并粘贴(ctrl+v)。

如果它不会在资源管理器 View 中打开,请确保您用来进行复制/粘贴的机器运行了“WebClient”服务。如果您运行的是 Windows 2008 R2,则除非您决定添加“桌面体验”功能,否则此服务不可用。找到一台装有 WebClient 服务的 Windows 7 机器要容易得多(但要确保它正在运行。)

更新:

也就是说,您的脚本可能大约有 80% 存在并且并不真正需要 2010 管理单元。我现在无法测试这个(抱歉),但它应该是大约 99% 正确的:

[reflection.assembly]::loadwithpartialname("microsoft.sharepoint") > $null

$org = "http://farm/sitecollection/sourcedoclib"
$dest = "http://farm/sitecollection/targetdoclib"

$site = new-object microsoft.sharepoint.spsite $org
$web = $site.openweb()

$srcLibrary = $web.Lists["sourcedoclib"]
$destLibrary = $web.Lists["targetdoclib"]

$destFiles = $destLibrary.Folders["Archived"]

foreach ($item in $srcLibrary.Items)
{
   if ($item.File) {
        $curFile = $item.file.OpenBinary()
        $destURL = $destFiles.Folder.Url + "/" + $item.file.Name
        $destFiles.Add($destURL, $curFile, $true)
    }
}

祝你好运。

关于sharepoint - 在同一网站集中的文档库之间移动文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11514833/

10-14 22:06