我想用CMD上传一个网络文件夹到Onedrive。
我本地网络中有一个网络文件夹,我想备份到Onedrive。由于我的云端空间是1TB,而我的本地免费空间只有10GB,所以我不能简单地将文件夹克隆到我的Onedrive文件夹中。
目前,我每天都会在浏览器上访问Onedrive并上传文件夹。我希望有一个批处理文件来完成这个工作。
你有什么好的办法吗?
我在我的树莓派上尝试了rclone/onedrive-d/SME/Nextcloud来保存文件夹,但它们都不可靠。
这已经有点过时了,但是对于任何访问者来说,rclone现在非常成熟并且支持Windows(例如choco)和Linux系统。我使用我的Windows机器创建授权令牌,然后使用该令牌配置了我的Linux机器。
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
找到一个更好的处理备用安装位置的方法...
有一个环境变量可以处理它:
Explorer.exe %OneDrive%
用于文件资源管理器
%OneDrive%
用于批处理文件
以及
$Env:OneDrive
用于 Powershell
在我的系统上,还有另一个不同的 %OneDriveConsumer%
,设置为与我的系统相同的位置,所以不确定那是用来做什么的...