平常的SharePoint站點測試中,咱們常常要作各類各樣的數據,今天又寫了幾個腳本,發現本身寫的腳本愈來愈多,因此我決定整理一下,並把一些經常使用的可複用的方法陸續發佈上來。web
今天先講一下用PowerShell上傳文件到SharePoint library中的方法,代碼以下:api
Add-PSSnapin Microsoft.SharePoint.PowerShell function CreateAgendaDocumentData { param($siteUrl,$listTitle,$filePath,$fileName) $site = Get-SPSite $siteUrl $web = $site.rootweb $List = $web.lists[$listTitle] $folder = $List.RootFolder $File= Get-ChildItem $filePath $fileStream =([System.IO.FileInfo](Get-Item $File.FullName)).OpenRead() [Microsoft.SharePoint.SPFile]$spFile = $folder.Files.Add($folder.Url + "/" + $fileName, [System.IO.Stream]$fileStream, $true) $spFile.Item.Update() $fileStream.Close() }
以上代碼中橘子色的字體是你須要輸入的信息,包括SharePoint site的url,list的title,本地文件的路徑以及你但願把它上傳到SharePoint中所起的新名字。ide
使用的方法以下:測試
$siteUrl = "填寫SharePoint站點的site url" $listTitle = "填寫想要上傳文件的list的title" $filePath = "填寫想要上傳的本地文件路徑" CreateAgendaDocumentData -siteUrl $siteUrl -listTitle $listTitle -filePath $filePath
以後就能夠看到文件已經上傳到指定的list(library)中。字體
咱們能夠經過上述方法批量的進行上傳文件——Upload a large amount of files to SharePoint.url
Add-PSSnapin Microsoft.SharePoint.PowerShell function CreateDocuments($siteUrl,$listTitle,$filePath,$fileName,$amount) { $site = Get-SPSite $siteUrl $web = $site.rootweb $List = $web.lists[$listTitle] $folder = $List.RootFolder $File= Get-ChildItem $filePath $fileStream =([System.IO.FileInfo](Get-Item $File.FullName)).OpenRead() for($i=0;$i -lt $amount;$i++) { $newfileName = $fileName + $i.ToString() [Microsoft.SharePoint.SPFile]$spFile = $folder.Files.Add($folder.Url + "/" + $newfileName, [System.IO.Stream]$fileStream, $true) $spFile.Item.Update() } $fileStream.Close() } function CallMethod() { $siteUrl = Read-Host "Site URL" $listTitle = Read-Host "List Title" $filePath = Read-Host "File Path" $fileName = Read-Host "File Name Template" $amount = Read-Host "File Amount" $amount = [int]$amount Write-Host "Creating..." -ForegroundColor Green CreateDocuments $siteUrl $listTitle $filePath $fileName $amount Write-Host "Finished!" -ForegroundColor Magenta } CallMethod
保存到ps1文件中右鍵經過PowerShell運行便可。it
其實在實際操做中,有時不光要上傳文件,還須要給其所在item設定相關field的value,這個我之後會單獨整理一篇文章來說解相關的全部操做。自動化
若是你們以爲有幫助,請點個贊,我會陸續寫完關於用PowerShell實現SharePoint自動化方面的一系列文章。歡迎你們和我交流,給我提問。io