平常的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