您的位置:首页 > 运维架构 > Shell

SharePoint 2010 PowerShell 系列 之 Create List and Field

2012-06-30 22:01 666 查看
学习目录

本篇才是重点,包含了基本的字段类型创建,具体情况看代码了,代码比文字更容易理解

# 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 List
Function 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 List
Function 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 OnQuickLaunch
Function OnQuickLaunchList($list,$bool){
$list.OnQuickLaunch = $bool
$list.Update()
}

#Add Fields
Function 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"
}


参考文章
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: