Powershell自动删除指定的SharePoint文档

时间:2014-10-29 15:36:01

标签: powershell sharepoint-2010

我们有一个包含大约8,000个SharePoint文档文件URL的csv文件 - 他们所涉及的文件必须下载到文件共享位置,然后从SharePoint中删除。这些文件不在同一站点中,而是位于服务器场中的几百个文件中。我们希望只删除指定的文件 - 而不是整个库。

我们有以下脚本来实现下载,它会创建文件夹结构,以便下载文件。

param (
   [Parameter(Mandatory=$True)]
[string]$base = "C:\Export\",
   [Parameter(Mandatory=$True)]
[string]$csvFile = "c:\export.csv"
   )
write-host "Commencing Download"
$date = Get-Date
add-content C:\Export\Log.txt "Commencing Download at $date":
$webclient = New-Object System.Net.WebClient
$webclient.UseDefaultCredentials = $true
$files = (import-csv $csvFile | Where-Object {$_.Name -ne ""})
$line=1
Foreach ($file in $files) {
 $line = $line + 1
   if (($file.SpURL -ne "") -and ($file.path -ne "")) {
    $lastBackslash = $file.SpURL.LastIndexOf("/")
    if ($lastBackslash -ne -1) {
     $fileName = $file.SpURL.substring(1 + $lastBackslash)
      $filePath = $base + $file.path.replace("/", "\")
          New-Item -ItemType Directory -Force -Path $filePath.substring(0, $filePath.length - 1)
      $webclient.DownloadFile($file.SpURL, $filePath + $fileName)
      $url=$file.SpURL
      add-content C:\Export\Log.txt "INFO: Processing line $line in $csvFile, writing $url to     $filePath$fileName"
    } else {
      $host.ui.WriteErrorLine("Exception: URL has no backslash on $line for filename $csvFile")
    }
  } else {
    $host.ui.WriteErrorLine("Exception: URL or Path is empty on line $line for filename $csvFile")
  }
}
write-Host "Download Complete"

我们有办法获得每个文件的版本吗?

我一直在寻找一种方法来执行删除,使用相同的csv文件作为参考 - 我看到的所有代码都是指删除整个库,这是不可取的。

我是PowerShell的新手,我迷路了。任何人都能解释一下吗?

非常感谢。

1 个答案:

答案 0 :(得分:0)

这看起来可能有用。这是一种不同的方法,需要进行修改才能从CSV中提取文件列表,但看起来它通常可以完成你想要做的事情。

https://sharepoint.stackexchange.com/questions/6511/download-and-delete-documents-using-powershell