You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Windows终端(CMD)从同步的SharePoint目录下载文件?

问题描述

我已通过OneDrive将SharePoint目录同步至Windows文件系统,部分文件已本地可用,其余仅存于云端。双击云端文件可自动下载,但我希望通过终端(CMD)编程实现该操作。

已尝试步骤

  • 导航至文件所在目录:
    cd "C:\Users\MyUsername\OneDrive\Documents"
    
  • 使用attrib命令尝试让文件本地可用:
    attrib -P +U my_file.iso
    
    执行后无输出,文件仍仅存于云端。
  • 尝试不带扩展名执行命令:
    attrib -P +U my_file
    
    结果报错:
    Could not find that file.
    

需求

无需手动双击,通过编程触发指定文件(如my_file.iso)从同步的SharePoint目录下载至本地。

补充信息

  • 目录通过OneDrive同步
  • 文件资源管理器中双击文件可成功下载
  • 已确认文件名及路径完全正确

已尝试操作

  • 对目标文件执行attrib -P +U命令
  • 使用dir命令确认文件存在于目标目录中

解决方法

方法1:用系统自带的odopen.exe触发下载

Windows自带的OneDrive命令行工具odopen.exe可以直接模拟双击文件的行为,触发云端文件下载到本地,命令格式如下:

odopen.exe "C:\Users\MyUsername\OneDrive\Documents\my_file.iso"

执行后会自动启动下载,无需额外操作。

方法2:PowerShell命令触发同步

如果需要通过脚本批量处理,可使用PowerShell的文件读取/写入命令触发下载,在CMD中也可以直接调用:

# 读取文件内容触发下载(不会修改文件)
Get-Content "C:\Users\MyUsername\OneDrive\Documents\my_file.iso" -ErrorAction SilentlyContinue

或者用追加空内容的方式触发同步:

Set-Content "C:\Users\MyUsername\OneDrive\Documents\my_file.iso" -Value $null -Append -ErrorAction SilentlyContinue

方法3:OneDrive Graph API(适合开发场景)

如果需要精细化控制下载逻辑,可调用OneDrive的Graph API,通过PUT请求主动拉取文件。示例用curl命令:

curl -X PUT "https://graph.microsoft.com/v1.0/me/drive/items/{文件ID}/content" -H "Authorization: Bearer {认证令牌}" -o "C:\本地路径\my_file.iso"

注意:需要替换{文件ID}和{认证令牌}为实际值,适合批量下载或集成到程序中。

说明:为什么attrib命令无效?

attrib -P +U是旧版OneDrive的同步命令,新版OneDrive(尤其是同步SharePoint站点的场景)已改用新的文件属性标记机制,因此该命令不再生效。


内容的提问来源于stack exchange,提问作者tail

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 18:33:25