我正在尝试使用PowerShell脚本更新SharePoint列表。此列表包含大约50,000个项目。获取所需的列表项需要一个多小时,然后执行更新需要更长的时间。
下面是需要执行这么长时间的代码行:
$url = "http://abcd/"
$listNameRequestProgress = "RequestProgress"
$web = get-SPWeb $url
$listNameRequestProgressObj = $web.lists[$listNameRequestProgress]
$itemRequestProgress = $listNameRequestProgressObj.Items | ? {$_.ID -eq 47809} #takes long time
$itemRequestProgress["Assigned"] = "616;#abcd"
$itemRequestProgress.UpdateOverwriteVersion() #takes long time
任何帮助将不胜感激。 感谢
答案 0 :(得分:0)
由于声誉而无法评论< 50.所以,在本节中发表评论。
请清楚地发布代码。什么是$ listNameRequestProgressObj?它是如何创建的? $ listNameRequestProgressObj |的输出是什么? gm命令?你可能会在那里找到一些有用的方法。
从高级别的角度来看,你可以在
中说出来$itemRequestProgress = $listNameRequestProgressObj.Items | ? {$_.ID -eq 47809}
您将获取所有项目,然后使用WHERE子句。 如果可能的话,使用像-Filter这样的东西,这样你就不必处理所有的"项目"在列表中。