首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >有没有办法一次编辑多个SharePoint 2013页面的超文本标记语言?

有没有办法一次编辑多个SharePoint 2013页面的超文本标记语言?
EN

Stack Overflow用户
提问于 2013-02-14 03:56:58
回答 1查看 1.2K关注 0票数 1

你们一定要救我。我应该进入70+ SharePoint 2013页面,并手动将每个页面html中的每个3+链接替换为正确的复制版本。与中一样,所有链接当前都指向/place1/place2/link,现在它们需要是/place3/place4/link

因此,必须有一种方法来批量编辑所有的页面,就像查找和替换一样,否则我只会坐在角落里哭上几个小时。我无法编辑文件夹结构,因为我不是项目负责人。

为了保持理智,我会不惜一切代价。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-14 08:33:44

您可以使用powershell。来自this question

代码语言:javascript
运行
复制
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)

注意,你需要弄清楚一个好的replace语句是如何工作的。此外,这会自动执行可能出错的更改,因此请确保在备份生产环境中的内容数据库之前,首先在dev/uat环境中执行此操作,然后再尝试。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14861934

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档