六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 282|回复: 0

SharePoint 2010 PowerShell 系列 之 Create List and Field

[复制链接]

升级  82.67%

140

主题

140

主题

140

主题

举人

Rank: 3Rank: 3

积分
448
 楼主| 发表于 2013-1-6 05:17:13 | 显示全部楼层 |阅读模式
<div id="cnblogs_post_body">学习目录
本篇才是重点,包含了基本的字段类型创建,具体情况看代码了,代码比文字更容易理解
<div class="cnblogs_code"># Check to ensure Microsoft.SharePoint.PowerShell is loaded$Snapin = get-PSSnapin | Where-Object {$_.Name -eq 'Microsoft.SharePoint.Powershell'}if($Snapin -eq $null){    Write-host "Loading SharePoint Powershell Snapin"    Add-PSSnapin "Microsoft.SharePoint.Powershell"}#SPListTemplateType$DocTemp = [Microsoft.SharePoint.SPListTemplateType]::DocumentLibrary$ContactsTemp = [Microsoft.SharePoint.SPListTemplateType]::Contacts$CustomGridTemp = [Microsoft.SharePoint.SPListTemplateType]::CustomGrid $GenericListTemp = [Microsoft.SharePoint.SPListTemplateType]::GenericList#SPFieldType$TextFieldType = [Microsoft.SharePoint.SPFieldType]::Text $NoteFieldType = [Microsoft.SharePoint.SPFieldType]::Note$ChoiceFieldType = [Microsoft.SharePoint.SPFieldType]::Choice$NumberFieldType = [Microsoft.SharePoint.SPFieldType]::Number#SPAddFieldOptions$DefaultViewFieldOptions = [Microsoft.SharePoint.SPAddFieldOptions]::AddFieldToDefaultView# Get Web$WebUrl = "http://win-kpmmoq5srnd:201"$Web = Get-SPWeb $WebUrl# Add ListFunction AddList($web,$listName,$listDescription,$template){    Write-Host "Starting Creat List" $listName "please waiting......" -foregroundcolor Yellow    Write-Host ".............................."    $web.Lists.Add($listName,$listDescription,$template)    Write-host "List" $listName "already is created"  -foregroundcolor Green}# Delete ListFunction DeleteList($web,$listName){    $list = $web.Lists.TryGetList($listName)    if($list -ne $null){        Write-Host "List" $listName "already exists,deleting......" -foregroundcolor Yellow        Write-Host "..........................."        $list.Delete()        Write-host "List" $listName "already is deleted" -foregroundcolor Green    }}# List OnQuickLaunchFunction OnQuickLaunchList($list,$bool){    $list.OnQuickLaunch = $bool    $list.Update()}#Add FieldsFunction AddField($list,$xml,$bool,$fieldOptions){    $list.Fields.AddFieldAsXml($xml,$bool,$fieldOptions)}Function AddList_Contact($web){    $listName = "PowerShell List"    $listDescription = "PowerShell"    DeleteList $web $listName    AddList $web $listName $listDescription $ContactsTemp        $list = $web.Lists.TryGetList($listName);    OnQuickLaunchList $list True}Function AddList_CustomList($web){    $listName = "Test"    $listDescription = "Test"    DeleteList $web $listName    AddList $web $listName $listDescription $GenericListTemp    $list = $web.Lists.TryGetList($listName)    OnQuickLaunchList $list True    AddListField_CustomList $web $list $listName}Function AddListField_CustomList($web,$list,$listName){    $textXml="<Field Type='Text'  DisplayName='你好' Required = 'FALSE' MaxLength='255' StaticName='Hello' FromBaseType='TRUE' Name='Hello'/>"    AddField $list $textXml $false $DefaultViewFieldOptions        $noteXml="<Field Type='Note' DisplayName='Multi' Required = 'FALSE' RichText='TRUE' RichTextMode='Compatible'/>"    AddField $list $noteXml $FALSE $DefaultViewFieldOptions        $noteXml1="<Field Type='Note' DisplayName='Multi1' Required = 'FALSE' RichText='TRUE' RichTextMode='FullHtml'/>"    AddField $list $noteXml1 $FALSE $DefaultViewFieldOptions        $noteXml2="<Field Type='Note' DisplayName='Multi2' Required = 'FALSE' RichText='TRUE'/>"    AddField $list $noteXml2 $FALSE $DefaultViewFieldOptions        $noteXml3="<Field Type='Note' DisplayName='Multi3' Required = 'FALSE' RichText='FALSE'/>"    AddField $list $noteXml3 $FALSE $DefaultViewFieldOptions        $choiceXml = "<Field Type='Choice' DisplayName='Choice' Required = 'FALSE' Format='Dropdown'>                    <Default>First</Default>                    <CHOICES>                        <CHOICE>First</CHOICE>                        <CHOICE>Second</CHOICE>                    </CHOICES>                 </Field>"    AddField $list $choiceXml $FALSE $DefaultViewFieldOptions        $choiceRadioButtonXml = "<Field Type='Choice' DisplayName='ChoiceRadioButton' Required = 'FALSE' Format='RadioButtons'>                    <Default>First</Default>                    <CHOICES>                        <CHOICE>First</CHOICE>                        <CHOICE>Second</CHOICE>                    </CHOICES>                 </Field>"    AddField $list $choiceRadioButtonXml $FALSE $DefaultViewFieldOptions        $choiceCheckXml = "<Field Type='MultiChoice' DisplayName='Checked' Required = 'FALSE'>                    <Default>First</Default>                    <CHOICES>                        <CHOICE>First</CHOICE>                        <CHOICE>Second</CHOICE>                    </CHOICES>                 </Field>"    AddField $list $choiceCheckXml $false $DefaultViewFieldOptions        $numberXml="<Field Type='Number' DisplayName='Number' Required = 'TRUE' Max='100' Min='1' Decimals='2'/>"    AddField $list $numberXml $FALSE $DefaultViewFieldOptions        $currencyXml="<Field Type='Currency' DisplayName='Currency' Required = 'TRUE' Decimals='1' LCID='1033' />"    AddField $list $currencyXml $FALSE $DefaultViewFieldOptions        $DateXml="<Field Type='DateTime' DisplayName='DateOnly' Required = 'FALSE' Format='DateOnly'/>"    AddField $list $DateXml $FALSE $DefaultViewFieldOptions        $DateTimeXml="<Field Type='DateTime' DisplayName='DateTime' Required = 'FALSE' Format='DateTime'/>"    AddField $list $DateTimeXml $FALSE $DefaultViewFieldOptions        $DateTimeISO8601Xml="<Field Type='DateTime' DisplayName='ISO8601' Required = 'FALSE' Format='ISO8601'/>"    AddField $list $DateTimeISO8601Xml $FALSE $DefaultViewFieldOptions        $BooleanXml="<Field Type='Boolean' DisplayName='Boolean' Required = 'FALSE'>                    <Default>1</Default>                </Field>"    AddField $list $BooleanXml $FALSE $DefaultViewFieldOptions        $BooleanDefaultXml="<Field Type='Boolean' DisplayName='BooleanDefault' Required = 'FALSE' Default = '2'/>"    AddField $list $BooleanDefaultXml $FALSE $DefaultViewFieldOptions        $userXml="<Field Type='User' DisplayName='User' Required = 'FALSE' UserSelectionMode='1' />"    AddField $list $userXml $FALSE $DefaultViewFieldOptions        $userMultipleXml="<Field Type='UserMulti' DisplayName='UserMulti' Required = 'FALSE' Mult='TRUE' />"    AddField $list $userMultipleXml $FALSE $DefaultViewFieldOptions        $urlXml="<Field Type='URL' DisplayName='URL' Required = 'FALSE' Format='Hyperlink'/>"    AddField $list $urlXml $FALSE $DefaultViewFieldOptions        $imgXml="<Field Type='URL' DisplayName='IMG' Required = 'FALSE' Format='Image'/>"    AddField $list $imgXml $FALSE $DefaultViewFieldOptions        $CalcXml="<Field Type='Calculated' DisplayName='Calc' Required = 'FALSE' Format='Image' Name='Internal_Calc' ResultType='Number' ReadOnly='TRUE'>                <Formula>=Number*100</Formula>                <FieldRefs>                    <FieldRef Name='Number'/>                </FieldRefs>             </Field>"    AddField $list $CalcXml $FALSE $DefaultViewFieldOptions           $CalcXml="<Field Type='Calculated' DisplayName='Calc1' Required = 'FALSE' Format='Image' Name='Internal_Calc1' ResultType='Currency' ReadOnly='TRUE' LCID='1033'>                <Formula>=Number*Currency</Formula>                <FieldRefs>                    <FieldRef Name='Number'/>                    <FieldRef Name='Currency'/>                </FieldRefs>             </Field>"    AddField $list $CalcXml $FALSE $DefaultViewFieldOptions                $list.Update()    #$list.Fields.Add("Test",$TextFieldType,$false)    #$list.Fields.Add("Test_2",$TextFieldType,$false)    #$list.Fields.Add("Test_Note",$NoteFieldType,$false)    #$testChoice = New-Object System.Collections.Specialized.StringCollection    #$testChoice.Add("First")    #$testChoice.Add("Second")    #$testChoice.Add("Third")    #$list.Fields.Add("Test_Choice",$ChoiceFieldType,$false,$false,$testChoice)    #$list.Fields.Add("Test_Number",$NumberFieldType,$false)        #$viewUrl = "/Lists/"+$listName+"/AllItems.aspx"    #Write-Host $viewUrl    #$allView = $web.GetViewFromUrl("/Lists/Test/AllItems.aspx")        #$fieldChoice = $list.Fields["Test_Choice"]    #$allView.ViewFields.Add($fieldChoice)    #$allView.Update()}if($Web -ne $null){    AddList_Contact $Web    AddList_CustomList $Web    write-host     $Web.Dispose()}else{    Write-Host $WebUrl " is not existing"}
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

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