Question

I have a list with a list item/column 'Category'. Let's say Category has values 'A','B', and 'C'.

I want to find all the values which are 'A' and replace it with 'B'. How should I do it?

I tried the following code but list item is a column. It gives me an error mentioned below code:

ForEach($Item in $ListItems)
{
    $item["A"] = "B";
    $item.Update();
}

The error:

"Column A does not exist. It may have been deleted..."

How can I solve this?

Était-ce utile?

La solution

Your code should be like:

$sourceWebURL = "<Site URL>"
$sourceListName = "<List Name>"

$spSourceWeb = Get-SPWeb $sourceWebURL
$spSourceList = $spSourceWeb.Lists[$sourceListName]
$spSourceItems = $spSourceList.Items | where {$_['Category'] -eq "A"}

$spSourceItems | ForEach-Object {
    $_['Category'] = "B"
    $_.update()
}

Reference: How to update list item on conditional basis using PowerShell in SharePoint 2010


Or based on your code, you can modify it like:

ForEach($item in $ListItems)
{
    if($item["Category"] -eq "A") 
    {
         $item["Category"] = "B";
         $item.Update();
    }

}
Licencié sous: CC-BY-SA avec attribution
Non affilié à sharepoint.stackexchange
scroll top