首页 > 解决方案 > 使用 powershell 从 SharePoint 列表中简单搜索和替换项目

问题描述

该脚本可以很好地从“标题”列替换为“单行文本”,但使用“自定义列名称”和“多行文本”它失败了吗?

Title - 单行文本
URLLInk - 多行文本

作品

$item["Title"] = $item["Title"].Replace("72PRD","PRD")

失败

$item["URLLInk"] = $item["URLLInk"].Replace("72PRD","PRD")

这是发送回 PS 的错误消息:

At D:\ps\ReplaceLinks1.ps1:10 char:27
+ $value = $item["URLLink"] if($value -Contains "72PRD") {
+                           ~~
Unexpected token 'if' in expression or statement.
+ CategoryInfo          : ParserError: (:) [], ParseException
+ FullyQualifiedErrorId : UnexpectedToken

尝试了上面的脚本,以及许多变体

使用 SP Powershell 设置为多行文本的 SharePoint 列表列中部分 URL 的基本搜索和替换


**THIS WORKED!!!!**

#MS testing script
Add-PSSnapin Microsoft.SharePoint.Powershell
$web = Get-SPWeb http://ADDRESS
$web.AllowUnsafeUpdates = $true

if($list = $web.Lists.TryGetList('LIST')){

    foreach ($item in $list.Items){
        $item['COLUMN-NAME'] = $item['COLUMN-NAME'] -replace 'TEXT', 'TEXT'
        $item.SystemUpdate()
    }

    Write-Host 'Updated values in the list items are' -fore green
    foreach ($item in $list.Items){
        $item['LinkData']
    }

}else{
    Write-Host '"LIST" not found' -fore red
}

标签: powershellsharepoint

解决方案


推荐阅读