zoukankan      html  css  js  c++  java
  • SharePoint自动化系列——Upload files to SharePoint library using PowerShell.

    转载请注明出自天外归云的博客园: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自动化方面的一系列文章。欢迎大家和我交流,给我提问。

  • 相关阅读:
    黑客悬赏活动第二期 | 百万ELF赏金,aelf跨链转账标准协议CCTP等你挑战!
    2020年aelf首场全民公测,有奖狂欢四重好礼大放送!
    使用aelf最新稳定测试币AEUSD试玩BingoGame Demo,赢取体验奖金!
    开发者大赛 | aelf轻型DApp开发训练大赛结果公布!
    黑客赏金第一期 | aelf跨链转账标准协议准备就绪,88888ELF赏金等你挑战!
    Twitter AMA预告 | aelf 创始人马昊伯将以【aelf治理与发展】为主题进行在线答疑!
    aelf Enterprise 1.0.0 Preview 2 版正式发布!
    aelf技术点解读 | 分红合约接口实现方案
    深入浅出索引--Mysql45讲笔记记录 打卡day3
    一条SQL语句是如何执行的?--Mysql45讲笔记记录 打卡day1
  • 原文地址:https://www.cnblogs.com/LanTianYou/p/4631046.html
Copyright © 2011-2022 走看看