Win11 mklink /J 目录联接(Junction)完整教程
针对你迁移Win11 离线地图 MapData的场景量身讲解
✅/J=目录联接(Junction),最适合转移软件数据文件夹;
❗ 区分:/D是目录符号链接,二者不要混用。
一、基础语法(重中之重,顺序千万别写反!)
mklink /J "链接路径" "真实存放路径"
-
链接路径:程序原本访问的旧位置(C 盘原文件夹)
-
真实存放路径:文件已经复制过去的新位置(D/E 盘)
你的离线地图实例
原路径:C:ProgramDataMicrosoftMapData复制到新盘:D:MapData
完整命令:
mklink /J "C:ProgramDataMicrosoftMapData" "D:MapData"
含义:系统访问 C 盘 MapData 时,自动跳转读取 D:MapData
二、迁移文件夹标准操作流程(照着一步步执行)
1. 前置准备
-
彻底关闭【地图】App,避免文件占用
-
文件资源管理器 →【查看】→ 勾选隐藏的项目,才能看见ProgramData
-
完整复制C:ProgramDataMicrosoftMapData→D:MapData等待复制完成,打开 D 盘文件夹确认所有文件齐全
⚠️ 优先复制,不要直接剪切!防止中途出错数据丢失
2. 备份原文件夹(回滚保命操作)
进入C:ProgramDataMicrosoft把文件夹MapData 重命名为 MapData_old
❌不能保留原名文件夹!同名存在就无法创建链接
3. 打开管理员 CMD
-
开始菜单搜索cmd
-
右键【命令提示符】→以管理员身份运行
⚠️ 普通窗口执行会权限不足、创建失败;不要在 PowerShell 直接运行 mklink
4. 执行创建联接命令
粘贴这条命令,回车
mklink /J "C:ProgramDataMicrosoftMapData" "D:MapData"
成功提示:Junction created for C:ProgramDataMicrosoftMapData <<===>> D:MapData
5. 测试验证
打开地图 App,断网测试离线地图能否正常加载。
测试正常后,再删除C:ProgramDataMicrosoftMapData_old释放 C 盘。
三、如何区分普通文件夹 和 Junction 链接
在管理员 CMD 输入:
dir /AL "C:ProgramDataMicrosoft"
看到类型标注<JUNCTION>就代表链接创建成功。
四、⚠️ 删除目录联接【非常重要!容易踩大坑】
不要直接右键删除链接!
直接右键删除 Junction,会连带把 D 盘里面全部真实文件一起删掉!
正确删除方式(二选一):
-
CMD 执行(推荐)
rmdir "C:ProgramDataMicrosoftMapData"
-
文件管理器:选中链接,按Shift+Delete
rmdir只会移除链接本身,不会删除目标文件夹内数据
五、/J(Junction)与 /D(符号链接)怎么选?
表格
|
参数
|
mklink /J
|
mklink /D
|
|
名称
|
目录联接 Junction
|
目录符号链接
|
|
跨盘符
|
✅支持(本地硬盘 C→D)
|
✅支持
|
|
软件兼容性
|
极高,老程序、系统目录首选
|
部分旧软件识别异常
|
|
适用场景
|
转移软件缓存、ProgramData 数据(你的离线地图)
|
开发、网络共享路径映射
|
👉转移 Windows 系统应用数据,一律优先使用 /J
六、高频报错解决
-
无法创建文件,文件已存在没有把 C 盘原文件夹重命名,删除 / 改名原文件夹再执行。
-
拒绝访问没有管理员身份运行 CMD;ProgramData 目录权限极高,必须提升权限。
-
创建成功,打开地图空白、加载不出离线地图
-
复制文件不完整,重新拷贝一次
-
重启电脑再测试
-
设置 → 应用 → 地图 → 高级选项 → 修复
-
目标放在移动硬盘
可以创建链接;拔掉移动硬盘后,离线地图直接失效,不建议长期使用。
七、关键红线提醒
-
路径包含空格时,必须用英文双引号包裹路径;
-
盘符、路径大小写不敏感,但路径不能写错;
-
不要嵌套链接(A 链接指向 B,B 又链接 C),极易出现异常;
-
不要手动修改 D 盘 MapData 内部文件权限,保持默认。
|