SharePoint自动化系列——Upload files to SharePoint library using PowerShell.

简介: 转载请注明出自天外归云的博客园:http://www.cnblogs.com/LanTianYou/ 日常的SharePoint站点测试中,我们经常要做各种各样的数据,今天又写了几个脚本,发现自己写的脚本越来越多,所以我决定整理一下,并把一些常用的可复用的方法陆续发布上来。

转载请注明出自天外归云的博客园:http://www.cnblogs.com/LanTianYou/

日常的SharePoint站点测试中,我们经常要做各种各样的数据,今天又写了几个脚本,发现自己写的脚本越来越多,所以我决定整理一下,并把一些常用的可复用的方法陆续发布上来。

今天先讲一下用PowerShell上传文件到SharePoint library中的方法,代码如下:

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中所起的新名字。

使用的方法如下:

$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.

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运行即可。


其实在实际操作中,有时不光要上传文件,还需要给其所在item设定相关field的value,这个我以后会单独整理一篇文章来讲解相关的所有操作。

如果大家觉得有帮助,请点个赞,我会陆续写完关于用PowerShell实现SharePoint自动化方面的一系列文章。欢迎大家和我交流,给我提问。

相关文章
|
存储 测试技术
SharePoint自动化系列——Site/Web/List级别的导航菜单
转载请注明出自天外归云的博客园:http://www.cnblogs.com/LanTianYou/ 需求:在不同的测试用例中,对脚本中不确定的因素需要和用户交互来确定,比如选择哪个site,选择哪个web,选择哪个list。
813 0
SharePoint自动化系列——Add content type to list.
转载请注明出自天外归云的博客园:http://www.cnblogs.com/LanTianYou/ 将创建好的content type(若是跨web application需要事先publish content type,并在Monitor中跑和Content type同步相关的job,这里我写...
700 0
SharePoint自动化系列——Add/Remove "Record" from items
转载请注明出自天外归云的博客园:http://www.cnblogs.com/LanTianYou/ 目的:批量的将SharePoint items变成records或者将records变成普通的items。
731 0
SharePoint自动化系列——Content Type相关timer jobs一键执行
转载请注明出自天外归云的博客园:http://www.cnblogs.com/LanTianYou/ 背景: 在SharePoint Central Administration->Monitoring->Job Definitions中我们可以看到所有的timer jobs,其中和Content Type相关的timer jobs有:   1.
806 0
SharePoint自动化系列——创建MMS terms
转载请注明出自天外归云的博客园:http://www.cnblogs.com/LanTianYou/ PowerShell脚本实现MMS group、termSet、terms的自动化创建: Add-PSSnapin Microsoft.
1042 0
SharePoint自动化系列——Create a local user and add to SharePoint
转载请注明出自天外归云的博客园:http://www.cnblogs.com/LanTianYou/ 实现过程:在本地创建一个local user并将该user添加到Administrators组中,然后在SharePoint指定site中添加该user,并赋予Full Control的权限。
805 0
SharePoint自动化系列——Select-option标签的定位方法总结
转载请注明出自天外归云的博客园:http://www.cnblogs.com/LanTianYou/ C#中通过Selenium定位页面上的select-option结构,尝试了以下几种方法,均没有生效: //iw.
1167 0
|
Web App开发
SharePoint自动化系列——Add/Remove “Hold” from items
转载请注明出自天外归云的博客园:http://www.cnblogs.com/LanTianYou/ 问题1: 1.如果SharePoint item被添加了hold,通过UI界面来对SharePoint items解锁是比较折腾的。
1125 0
SharePoint自动化系列——Manage "Site Subscriptions" using PowerShell
转载请注明出自天外归云的博客园:http://www.cnblogs.com/LanTianYou/ 你可以将普通的sites加入到你的site subscriptions中,前提是你需要有一个 Tenant Administration site,如果没有这个site,一切都别谈了。
847 0
|
安全 开发工具 IDE
SharePoint自动化系列——Error features自动deactivate
转载请注明出自天外归云的博客园:http://www.cnblogs.com/LanTianYou/ SharePoint Content Deployment prerequisite——Error features deactivate automation 对于Content Depl...
1162 0

热门文章

最新文章