You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在不替换服务器文件的前提下下载SharePoint文件的不同版本并进行对比?

如何在不替换服务器文件的前提下下载SharePoint文件的不同版本并进行对比?

我太懂这种两难的处境了——生产环境里绝对不能随便恢复版本,而XML文件又没法用Office自带的版本对比功能,想拿旧版本来对比简直束手无策。别慌,下面这几个方法都能让你安全下载指定版本的文件,完全不会动服务器上的当前活跃版本:

方法一:用PowerShell脚本精准下载(适合频繁操作或批量需求)

不管你用的是SharePoint Online还是本地部署的SharePoint,PowerShell都是最靠谱的批量/精准下载方式,而且全程不会影响服务器上的文件:

# 针对SharePoint Online,先安装并加载模块(第一次用需要执行)
Install-Module -Name Microsoft.Online.SharePoint.PowerShell -Force -AllowClobber
Connect-SPOService -Url "https://你的租户名.sharepoint.com/sites/你的站点名"

# 替换成你的文件服务器相对路径,比如 "/sites/MySite/DocLib/test.xml"
$fileServerUrl = "/sites/MySite/DocLib/test.xml"
# 获取文件及所有版本信息
$targetFile = Get-SPOFile -Url $fileServerUrl -WithVersions

# 先查看所有版本的详细信息,确认你要下载的版本标签或ID
$targetFile.Versions | Select-Object VersionLabel, Id, Created, ModifiedBy

# 选择要下载的版本,比如这里选版本标签为"2.0"的旧版本
$wantedVersion = $targetFile.Versions | Where-Object { $_.VersionLabel -eq "2.0" }
# 下载到本地指定路径
$wantedVersion.OpenBinary() | Set-Content -Path "C:\本地文件夹\test_v2.0.xml" -Encoding Byte

如果是本地SharePoint(2013/2016/2019),只需要把开头的模块换成Microsoft.SharePoint.PowerShell,连接站点的命令换成Connect-SPWeb -Url "http://你的本地站点地址"即可。

方法二:用浏览器开发者工具临时下载(适合应急单次操作)

如果你不想写代码,用浏览器的开发者工具就能抓包下载指定版本,步骤超简单:

  • 打开SharePoint文档库,找到目标XML文件,点击「版本历史」打开版本列表页
  • 按F12打开开发者工具,切换到「网络」标签页,刷新页面
  • 在请求列表里找类似 _api/web/getfilebyserverrelativeurl('...')/versions 的API请求,点击它查看「响应」标签页,里面会列出所有版本的Id和相关信息
  • 构造下载链接:把你的文件路径和目标版本ID替换到这个模板里:
    https://你的站点地址/_api/web/getfilebyserverrelativeurl('你的文件服务器路径')/versions(版本ID)/openbinarystream
  • 把构造好的链接复制到新标签页打开,就能直接下载该版本的文件,全程不会触动服务器上的当前版本

方法三:SharePoint Designer辅助下载(限有设计权限的场景)

如果你有SharePoint Designer的访问权限,也可以用它来操作:

  • 打开SharePoint Designer并连接到目标站点
  • 找到对应的文档库和XML文件,右键点击文件选择「版本历史」
  • 在弹出的版本列表里,右键你需要的旧版本,选择「下载」即可(部分旧版SP Designer可能需要先打开版本详情再下载)

这些方法都能安全获取到旧版本文件,之后你就可以用WinMerge或者其他对比工具来查看XML内容的差异啦,完全不用担心影响生产环境的当前文件。

备注:内容来源于stack exchange,提问作者Erik

火山引擎 最新活动