百度网盘、夸克等各种网盘都提供了自动备份文件夹的功能,但一般都有文件夹数量的限制,比如百度网盘就限制了最多只能同时备份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 备份完成!
运行完成后,在百度网盘或其他网盘的自动备份设置里,设置备份百度网盘备份
这个文件夹就可以了。
Comments 1 条评论
显示“系统找不到指定路径”时,把文件夹连同脚本里面名字换成全英文,如BDDiskAllBackup