设为首页 收藏本站
查看: 926|回复: 0

PowerShell base operate about list

[复制链接]

尚未签到

发表于 2017-5-20 06:35:20 | 显示全部楼层 |阅读模式
先让我来看一下我们有哪些列表模板可以使用,我们可以在SPWeb对象下使用ListTemplates参数来设置列表模板。首先,让我们先来初始化一个SPWeb的对象。
PS>$spWeb=Get-SPWeb-Identityhttp://localhost
然后,我们使用ListTemplates参数,并使用Select-Object参数,来查看我们有哪些列表模板可以使用
DSC0000.gif
当我们创建一个新的列表的时候可以使用这些的列表模板。当我们要在SharePoint2010中创建一个列表的时候,你需要在SPListCollection中使用Add方法。在下面的例子中我们将会使用三个参数,Title,description,这两个参数的类型是System.String,还有一个template这个参数的类型是SPListTemplateType。所以我们需要初始化一个对象来使用这些参数。
PS>$listTemplate=[Microsoft.SharePoint.SPListTemplateType]::Contacts
PS>$spListCollection=$spWeb.Lists
PS>$spListCollection.Add("My Contacts","Description",$listTemplate)
我们在使用Add方法是,一定要避免使用$spweb.Lists.Add。如果我们利用这个方法连续创建很多列表,就会重复获取网站的lists的数据,这样会加大内存的消耗,如果指调用一次并保存在一个变量中,这样就只需要获取一次lists的数据,并可以重复使用。
使用PowerShell更新SharePoint列表
下面让我们来修改我们刚刚创建的列表,首先需要使用GetLists()方法获取到这个列表
PS>$spList=$spWeb.GetList("/Lists/MyContacts")
PS>$spList.OnQuickLaunch="True"
PS>$spList.Update()
当我们使用了上面的命令后,列表的链接就会显示在网站的快速启动的中,如果设置了为false就会在快速启动中隐藏。如果我们要修改列表的说明信息,我们需要使用 Description参数。
PS>$spList.Description= "MyContact List"
PS>$spList.Update()
使用PowerShellSharePoint列表中添加栏
如果要向列表中添加一个新的栏,我们就需要使用SPFieldCollection类中的Add方法。现在我们创建一个比较简单的单行文本的栏。
PS>$spFieldType=[Microsoft.SharePoint.SPFieldType]::Text
PS>$spList.Fields.Add("TextField",$spFieldType,$false)
上面使用的Add方法中有三个参数,第一个是栏的名称,第二个参数是栏的类型,这里我们使用了一个变量来保存单行文本的栏类型,第三个参数我们输入的false,这里表示的是这个新建的栏是否在保存表单时一定要输入一个值,也就是在网站创建栏选择的“要求此栏包含信息”选项。
同时SharePoint 2010还支持其他类型的栏,如果要添加一个选项类型的栏时会有一些不用,因为它需要设置一些可供选择的数据。我们可以将选项栏用的到数据保存到System.Collections.Specialized.StringCollection类中,我们来看下面的例子。
PS>$choices=New-ObjectSystem.Collections.Specialized.StringCollection
PS>$choices.Add("First Choice")
PS>$choices.Add("Second Choice")
PS>$choices.Add("Third Choice")
现在我们可以使用这个变量,来创建一个类型为Choice”类型的栏
PS>$spFieldType=[Microsoft.SharePoint.SPFieldType]::Choice
PS>$spList.Fields.Add("ChoiceField",$spFieldType,$false,$false,$choices)
使用PowerShell管理列表视图
让我们来继续看看如果利用PowerShell管理列表的视图。我们可以通过对视图定制来显示我们的需要的数据内容。当我们创建一个新的列表时,会有一个默认的视图。我们可以通过PowerShell来编辑默认的这个视图。我们可以使用GetViewFromUrl来获取视图的链接。
PS>$spView=$spWeb.GetViewFromUrl("/Lists/MyContacts/AllItems.aspx")
当我创建好一个新的栏时,它不会被添加到默认的视图中被显示。我们可以通过PowerShell将这个栏添加到这个默认视图中。我们需要先使用一个变量来保存栏。
PS>$spField=$spList.Fields["TextField"]
我们可以通过SPViewFieldCollection类中的 Add方法来向视图中添加栏,然后使用Update()方法来保存更新。
PS>$spView.ViewFields.Add($spField)
PS>$spView.Update()
你可以使用更多的方法来管理列表视图,例如,创建视图,删除视图。
使用PowerShell管理列表项目
让我们来继续看看如何向一个列表中添加一个列表项目。SPLists类提供一个AddItem的方法,我们可以使用这个方法来添加一个列表项目。当我们使用AddItem方法时,它会返回一个Microsoft.SharePoint.SPListItem的对象。因为我们需要对这个列表项目来设置每个栏数据。
PS>$spListItem=$spList.AddItem()
现在我们开始对每一个栏来设置它的数据,SPListItem类中提供一个参数化Item属性,我们可以通过这个属性设置特定栏的值。例如:
PS>$spListItem["Title"]="New Item"
PS>$spListItem["TextField"]="Hey hey"
PS>$spListItem["ChoiceField"]="First Choice"
PS>$spListItem.Update()
如果要更新一个已经存在的列表项目我们该怎么做呢?SPList类中提供了很多方法可以提供给我来查找一个列表项目。最常用的命令式GetItemById() GetItems()
GetItemById()方法是在我们知道这个itemid时候可以获取到这个列表项目。但在很多时候,我们并不知道这个列表项目的Id,而只是知道标题,或者其他的一些栏的信息。在这个时候我们需要使用GetItems()这个方法。这个方法将会返回所有的列表项目或者在使用CamlQuery定义时得到列表项目
PS>$spQuery=New-ObjectMicrosoft.SharePoint.SPQuery
SPQuery对象是用来支持Query查询的类,在这个时候我们就可以CAML Query的语句,
PS>$camlQuery=
>>‘<Where><Eq><FieldRefName="Title"/><ValueType="Text">True</Value></Eq></Where>'
PS>$spQuery.Query=$camlQuery
在我们使用GetItems方法后,我们需要使用一些参数来设置返回的Item的行数限制,如果我们没有使用行数限制的参数,在获取一些数据量很大的列表数据时,就可能会失败。
PS>$spQuery.RowLimit=100
PS>$spListItem=$spList.GetItems($spQuery)
现在我们可以通过使用GetItems()方法获取到的数据,进行编辑。GetItems方法会返回一个ListItemCollection的类型。这个时候我们需要使用ForEach-Object命令来循环获取列表数据。
PS>$spListItem|ForEach-Object{
>>$_["Title"]= "New Value";$_.Update()
>>}

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-379169-1-1.html 上篇帖子: powershell zip打包文件夹 下篇帖子: PowerShell基础教程(6)——应该重点理解的Windows PowerShell 概念
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表