有没有办法一次编辑多个SharePoint 2013页面的HTML?

时间:2013-02-13 19:56:58

标签: sharepoint

你们要救我。 我应该进入70多个SharePoint 2013页面,并使用正确的复制版本手动替换每个页面的html中的3个以上链接。如同,所有链接当前指向/ place1 / place2 / link,现在他们需要/ place3 / place4 / link

所以,必须有一种大规模编辑所有页面的方法,比如查找和替换,否则我只会坐在角落里哭几个小时。我无法编辑文件夹结构,因为我不是项目负责人。

我会尽一切努力保持理智。

1 个答案:

答案 0 :(得分:2)

您可以使用powershell。 来自this question

function ProcessWeb($currentWeb)
{
    if([Microsoft.SharePoint.Publishing.PublishingWeb]::IsPublishingWeb($currentWeb))
    {            
        $publishingWeb = [Microsoft.SharePoint.Publishing.PublishingWeb]::GetPublishingWeb($currentWeb)
        $publishingPages = $publishingWeb.GetPublishingPages()
        foreach ($publishingPage in $publishingPages)
        {
            if($publishingPage.ListItem.File.CheckOutStatus -eq "None")
            {
                UpdatePage -page $publishingPage
            }
        }    
        Write-Host -ForegroundColor red "FINISHED"
    }
    else
    {
        Write-Host -Foregroundcolor Red "^ not a publishing site" 
    }
}

function UpdatePage($page)
{
    $page.CheckOut();
    Write-Host -Foregroundcolor green $page.Url;        
    $NewPageContent = $page["PublishingPageContent"].Replace("/place1/place2/link","/place3/place4/link");
    $page["PublishingPageContent"] = $NewPageContent    
    $page.ListItem.Update();
    $page.CheckIn("nothing");
    $page.ListItem.File.Approve("Updated PublishingPageContent to replate place1/place2 with place3/place4");
}

ProcessWeb(Get-SPWeb -identity http://myintranet.com)

请注意,您需要了解一个好的替换语句将如何工作。 此外,这会自动进行可能出错的更改,因此请确保先在dev / uat环境中执行此操作,然后再在生产中备份内容数据库,然后再进行操作。