Onedrive同步指定文件夹

发布于 2020-09-10  2.33k 次阅读


最近入手了个人版的Microsoft 365 ,不得不说,Onedrive的同步功能确实很棒,只可惜网页版...(咳咳,各位懂的),言归正传,在使用Onedrive的时候我发现了一个很蛋疼的问题,这玩意居然只能同步Onedrive文件夹,不能同步指定文件夹?摸索一番之后,我发现其实是可以的,所以在此记录一下。临时补充:这玩意有个Bug,介意勿用!我折腾这东西折腾了好几天都无果,凑合用吧。

关于原理

这里使用到了一个mklink 的命令,至于啥是mklink ,NTFS 符号链接又称“符号链接”,是 NTFS 文件系统中指向文件系统中的另一个对象的一类对象,被指向的对象叫做“目标”。mklink 是 Windows 下用于创建符号链接的工具,存在于 Windows Vista 及以后版本的 Windows 操作系统中,(摘自百度百科)。简单地说,就是相当于在文件夹内创建一个快捷方式(这个快捷方式比较特殊而已),在我之前的文章也曾使用过这个命令,具体可看:将”C:\Users”文件夹移至其他目录

关于一个逼死强迫症的Bug

这篇文章我本来打算9月2号就写好了,然而当我准备发布文章的时候我发现了一个能逼死强迫症的Bug——链接的文件夹无论是否同步完成都会提示同步被挂起,而且当文件更改之后不能马上同步,需要在下次登录系统的时候才能登录。之所以这么久都没把这篇文章写出来,大概都是因为研究这个憨憨Bug,我找了无数种方法,似乎都不能解决这个Bug,更为滑稽的是,我用的这个同步指定文件夹的方法特么还是微软自己给出来的,并不是什么歪门邪道,真的想不懂微软的工程师是不是脑子被驴踢了,这么明显的Bug居然不去修复。。。

具体方法

废话不多说现在开始

首先以管理员身份运行cmd:开始菜单->Windows系统->右键点击命令提示符->以管理员身份运行

在cmd窗口输入以下命令:

mklink /d "Onedrive文件夹内的文件夹" "需要同步的文件夹"

关于以上命令的解释

Onedrive文件夹内的文件夹指的是你需要同步的文件夹在Onedrive内的目录,例如我希望在Onedrive的Source文件夹同步我在D:\Source 的文件夹,而我的Onedrive文件夹在D:\OneDrive (说起来有点绕,我不太会表达,看示例秒懂相信我),那么我应该这么写:

mklink /d "D:\OneDrive\Source" "D:\Source"

如下图(如果目录不含空格双引号可省略):

Onedrive同步指定文件夹

如果执行成功会提示如下:

Onedrive同步指定文件夹

如果顺利的话Onedrive就会开始同步了,也就是完成了:

Onedrive同步指定文件夹

一些可能的疑问和答案

Q:那我如果不想同步这个文件夹了呢?

A:在Onedrive文件夹删掉那个不想同步的文件夹即可。

Q:你说的微软给的解决方案原文在哪?

A:自己看:https://support.microsoft.com/en-us/office/can-t-synchronize-onedrive-files-and-folders-from-a-local-file-location-other-than-the-default-onedrive-path-b7eef9d4-4203-431d-8345-fe49254f9da0

Q:这个Bug有没有可能修复?

A:问微软去,别问我

Q:为啥你图中的cmd跟我的不一样

A:我那是用了Windows Terminal,以后会出一篇文章介绍


车到山前必有路,船到桥头自然直。