使用CMD将文件夹上传至Onedrive *Windows*

3
我想用CMD上传一个网络文件夹到Onedrive。 我本地网络中有一个网络文件夹,我想备份到Onedrive。由于我的云端空间是1TB,而我的本地免费空间只有10GB,所以我不能简单地将文件夹克隆到我的Onedrive文件夹中。 目前,我每天都会在浏览器上访问Onedrive并上传文件夹。我希望有一个批处理文件来完成这个工作。 你有什么好的办法吗? 我在我的树莓派上尝试了rclone/onedrive-d/SME/Nextcloud来保存文件夹,但它们都不可靠。

欢迎来到Stack Overflow!请阅读如何提出好问题。您的问题应该是具体的,相关代码应该是最小化、完整和可验证的 - Indra Basak
2
我正在寻找同样的东西。几年前有一个叫做Cubby的产品,它有一个其他云存储没有的功能:您可以配置任何默认目录之外的目录作为您存储的一部分(Google Drive似乎确实有这个功能)。复制是实现此目的的简单方法,但我想要上传的文件非常大,复制它将浪费时间和空间。如果有类似于copy_onedrive <file path> <one drive path>的东西就太好了。云存储服务侧重于自身成为您的主要存储,并将硬盘作为备份。应该反过来。 - alvaroc
3个回答

1

这已经有点过时了,但是对于任何访问者来说,rclone现在非常成熟并且支持Windows(例如choco)和Linux系统。我使用我的Windows机器创建授权令牌,然后使用该令牌配置了我的Linux机器。


0
这是我在经典的Windows BAT shell脚本中的做法:首先将OneDrive映射为标准的Windows网络驱动器,然后对其执行操作:
net use OneDriveMountPoint "https://d.docs.live.net/OneDriveCID" /USER:OneDriveUser /P:No

如果你想使用免费的Windows驱动器盘符,比如Y:,那么OneDriveMoutPoint就是你需要的;而OneDriveCID则是你的OneDrive ID,当你通过浏览器登录OneDrive时可以看到(URL类似于https://onedrive.live.com/?id=..whatever...&cid=OneDriveCID);OneDriveUser则是你的Windows OneDrive用户名(通常类似于john.smith@outlook.com)。因此,这可能看起来像:

net use Y: "https://d.docs.live.net/XGS%WHATEVER53SFF" /USER:john.smith@outlook.com /P:No

执行时会提示输入Windows OneDrive密码(也可以在net use调用中硬编码以避免提示,但出于明显的安全考虑,不建议这样做)。

之后,您将OneDrive挂载为网络驱动器,它现在显示在Windows资源管理器中,并且可以轻松地使用shell命令访问,例如同步复制备份操作:

robocopy C:/mydatalocal Y:/mydataonedrive /MIR

(假设您的挂载点是Y:并且文件夹已存在)。请注意,在本地Windows设置中,远程目标OneDrive文件夹mydataonedrive必须设置为非同步,否则远程文件夹中的所有内容将自动同步回本地OneDrive文件夹结构中...

出于安全原因,您可能希望在操作完成后销毁该链接:

net use Y: /delete

-1

找到一个更好的处理备用安装位置的方法... 有一个环境变量可以处理它: Explorer.exe %OneDrive% 用于文件资源管理器 %OneDrive% 用于批处理文件 以及 $Env:OneDrive 用于 Powershell

在我的系统上,还有另一个不同的 %OneDriveConsumer%,设置为与我的系统相同的位置,所以不确定那是用来做什么的...


%OneDriveConsumer% 用于 Microsoft 帐户中包含的常规 OneDrive,如果您有工作或学校帐户,则环境变量中会出现 %OneDriveCommercial%,默认路径 %OneDrive% 也设置为商业版。 - Ares9323
这并没有回答任何问题。 - alvaroc

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接