使用mklink突破百度网盘等软件的自动备份文件夹数量限制

发布于 2023-05-25  529 次阅读


百度网盘、夸克等各种网盘都提供了自动备份文件夹的功能,但一般都有文件夹数量的限制,比如百度网盘就限制了最多只能同时备份5个文件夹,想整盘备份的话显然是不够的。当然,你可以把所有的文件夹都转移到一个母文件夹下,但这样明显不太方便,操作起来还涉及到已有路径的迁移问题。

这里介绍一下通过windows自带的mklink命令来突破文件夹上限,实现整盘备份。

注意mklink不支持在powershell中使用,只能用cmd。

什么是mklink

mklink是Windows操作系统中的一个命令行工具,用于创建符号链接。符号链接目录是指向其他目录的指针,当在符号链接目录中查找文件时,实际上是在目标目录中进行查找。这可以使得在不复制或移动实际文件的情况下,将目录中的内容链接到另一个位置。

因为是从底层实现文件夹链接,所以这个链接是对应用程序透明的。比如我有一个目录"D:\link",链接到了“D:\pictures",那么如果我备份link目录,实际是在备份pictures目录。

使用mklink不会占用额外的空间,而且在资源管理器里删除链接也不会影响到源目录,十分实用。

使用mklink实现全盘备份

了解了mklink的原理后,很容易就可以想到,如果我们有一个目录百度网盘备份,目录下使用mklink将D盘下的所有文件或文件夹都链接过来,那么只要备份百度网盘备份这一个目录,我们就可以备份D盘的所有目录了。

手动链接会比较慢,这里提供一个bat脚本进行批量操作,这个脚本是将D盘下的除了百度网盘备份文件夹的所有文件和文件夹链接到百度网盘备份文件夹下。

@echo off

set "sourceFolder=D:\"          REM 源文件夹路径
set "backupFolder=D:\百度网盘备份"    REM 备份目标文件夹路径

REM 遍历源文件夹下的所有子文件夹
for /d %%I in ("%sourceFolder%\*") do (
    set "folderName=%%~nxI"

    REM 排除百度网盘备份目录
    if /i not "%%~nxI"=="百度网盘备份" (
        REM 创建符号链接
        mklink /d "%backupFolder%\%%~nxI" "%%I"
    )
)

REM 遍历源文件夹下的根目录文件
for %%F in ("%sourceFolder%\*.*") do (
    set "fileName=%%~nxF"

    REM 创建符号链接
    mklink "%backupFolder%\%%~nxF" "%%F"
)

echo 备份完成!

运行完成后,在百度网盘或其他网盘的自动备份设置里,设置备份百度网盘备份这个文件夹就可以了。

届ける言葉を今は育ててる
最后更新于 2023-05-25