Sitecore Powershell 批量替换richtext 字段内容

Q:网站有上千个页面,这上千个页面中都有一个相同的broken link,需要替换成正确的链接。如何才能简单,快速有效的完成这个动作呢

A:首先我们肯定会考虑这个动作的实现方式,

1、简单笨重的人工一个一个页面修改

2、通过写程序扩展实现

3、sitecore powershell

方一肯定是排除不可取的,方法二其实也是可以实现的,但是我觉得我想考虑一下方法三,之前我从来没有接触过,通过这个需求还学习一下powershell 语法。

最终实现的代码如下:

function GetAllLanguageVersions($item)
{
    Get-Item $item.ProviderPath -Language "zh-CN"
}

function ProcessItem($item)
{
    $html=$item.Fields["MyField"].Value -replace "http://www.baidu.com","http://www.cnblogs.com/wem520"
        $item.Editing.BeginEdit()
        $item.Fields["MyField"].Value=$html
        $item.Editing.EndEdit()

}

$itemsToProcess = Get-ChildItem -Path "/sitecore/content/home" | foreach {GetAllLanguageVersions($_)}
if($itemsToProcess -ne $null)
{
    $itemsToProcess | foreach {ProcessItem($_)}
}

  

时间: 2024-12-25 19:34:02

Sitecore Powershell 批量替换richtext 字段内容的相关文章

MySQL批量替换指定字段字符串

MySQL批量替换是我们经常会用到的功能,有时站内包含敏感词,会给我们带来麻烦,而在信息量较大的情况下,一篇篇查找.修改是不现实的. 用MySQL批量替换,甚是轻松.发布在这里供参考,以备不时之需. MySQL批量替换指定字段字符串语句 UPDATE 数据表名 SET 字段名 = replace(字段名, '要替换的字符串', '替换为') WHERE 设定条件; 比如本站今天发现站内关于linux命令的文章 标题不是太好,以前都是以 linux下mkdir命令使用详解---linux创建目录命

Powershell 批量替换文件

Powershell 批量替换文件 ##作者:Xiongpq ##时间:2015-06-10 18:50 ##版本:2.0 ##源文件目录 ##源文件目录的所有文件都会覆盖目标目录的同名文件,源文件目录可以在目标目录内,不会循环覆盖 $source = 'E:\Test_Target\Test_Source\' ##目标目录,支持多个目录 $target = 'E:\Test_Target\', 'D:\Test_Target' $sourceItem = Get-ChildItem -Path

SQL替换语句 批量修改、增加、删除字段内容

sql替换语句,用该命令可以整批替换某字段的内容,也可以批量在原字段内容上加上或去掉字符. 命令总解:update 表的名称 set 此表要替换的字段名=REPLACE(此表要替换的字段名, '原来内容', '新内容') 如 UPDATE Whir_ProductRelese SET ReleseName=REPLACE(ReleseName,'aa','bb') 举例说明: 1)把backupfile表里url的字段内容里为aa的字符全部改为bb. update backupfile set

PHP批量替换MySql数据库中的数据内容(替换MySql数据库内容源码)

PHP批量替换MySql数据库内容 UTF-8 1.0版 <?php //声明 //1.本源码开发意图:作者在使用一些CMS建站的时候发现很多CMS把网址写入到数据库了,如果换网址,那么就需要更新数据库中的老网址,如果一个一个修改,很不方便,所以开发此源码,供大家学习或使用: //2.源码开发者:杨波: //3.源码开发者联系QQ:773003231: //4.源码开发者博客:http://www.cnblogs.com/phpyangbo/: //5.源码开放性:任何人都可以随意更改或使用本源

DEDECMS使用SQL命令批量替换语句

1.更改文章中的内容 update dede_addonarticle set body=replace(body,'原来的字符','替换后的字符') 2,替换文章标题 update dede_archives set title=replace(title,'原来的字符','替换后的字符'); 3,替换文章关键字 update dede_archives set keywords=replace(keywords,'原来的字符','替换后的字符'); 4,替换文章描述 update dede_

mysql批量替换数据库某字段部分内容

update 表名 set 字段名=replace(字段名,’要替换的内容’,’替换后的内容’) eg:修改scenario表中的picture字段中的ip地址. 1 UPDATE scenario 2 SET picture = REPLACE(picture, '10.10.4.43','10.10.4.88'): 查看修改后的结果 1 SELECT * FROM scenario:

SQL替换语句之批量修改、增加、删除字段内容

语法 REPLACE ( original-string, search-string, replace-string ) 用法 update 表的名称 set 替换字段=REPLACE(替换字段,原来内容,新内容) 参数 如果有某个参数为 NULL,此函数返回 NULL. original-string     被搜索的字符串.可为任意长度. search-string     要搜索并被 replace-string 替换的字符串.该字符串的长度不应超过 255 个字节.如果 search-

linux下sed批量替换文件内容

在linux超级终端下编辑文档是件比较麻烦的事情,下面简单介绍一下如何在linux下批量替换文件内容 linuxsed 批量替换多个文件中的字符串 格式: sed -i "s/查找字段/替换字段/g" `grep 查找字段 -rl 路径` 例如:替换/home下所有文件中的xxx为ooo sed -i "s/xxx/ooo/g" `grep xxx -rl /home` 单个文件中的字符串替换 将文件1.txt内的文字“111”替换成“222” sed -i &qu

linux下批量替换文件内容

linux下批量替换文件内容 1.网络上现成的资料 格式: sed -i "s/查找字段/替换字段/g" `grep 查找字段 -rl 路径` linux sed 批量替换多个文件中的字符串 sed -i "s/oldstring/newstring/g" `grep oldstring -rl yourdir` 例如:替换/home下所有文件中的www.admin99.net为admin99.net sed -i "s/www.admin99.net/a