我在list元素上有一个带有foreach
的简单脚本。
对于每个项目,我只想用新的替换ContentTypeId
。
我的ContentTypeId
对列表有效。
但我有一个错误
具有0个arg(s)值的SystemUdapte不在
范围内
或者其他什么 像英语中的那样(消息是法语)。
$web = Get-SPWeb http://mysite
$list = $web.Lists["MyList"];
$spqQuery = New-Object Microsoft.SharePoint.SPQuery
$spqQuery.Query = ""
$spqQuery.ViewFields= '<FieldRef Name="Title" /><FieldRef Name="ContentType" /><FieldRef Name="FileRef" /><FieldRef Name="ContentTypeId" />'
$spqQuery.ViewFieldsOnly = $true
$spqQuery.RowLimit = 5000
$listItems = $list.GetItems($spqQuery)
foreach ($item in $listItems)
{
$item["ContentTypeId"] = "0x01010054AD59695853624FB33312A5507FAF03030076DEFBBE080151418469AFD0CC4364C6"
$item.SystemUpdate()
}
你有什么想法吗?
答案 0 :(得分:0)
修改以下代码段:
$web = Get-SPWeb http://sp/sites/dev
$list = $web.Lists["RestDate"];
$spqQuery = New-Object Microsoft.SharePoint.SPQuery
$spqQuery.Query = ""
$spqQuery.RowLimit = 5000
$listItems = $list.GetItems($spqQuery)
foreach ($item in $listItems)
{
$item["ContentTypeId"] = "0x010800DE27E128A6FA704285FC5BD90F4D2D22"
$item.Update()
}
“0x010800DE27E128A6FA704285FC5BD90F4D2D22”是任务内容类型标识符,它按预期工作: