WorkBuddy 卸载重装+数据迁移全记录:用 Junction 解决工作空间路径锁定问题

发布时间:2026/7/5 2:20:12
WorkBuddy 卸载重装+数据迁移全记录:用 Junction 解决工作空间路径锁定问题 WorkBuddy 卸载重装数据迁移全记录用 Junction 解决工作空间路径锁定问题本文记录了将 WorkBuddy 工作空间和全局配置从 C 盘迁移到 D 盘的完整过程包括卸载重装、目录联接Junction方案、以及中途遇到的各种坑和解决方案。适用于WorkBuddy 重装后需要恢复数据、或想把数据迁移到其他盘符的用户。一、背景WorkBuddy 用了一段时间后C 盘空间吃紧。看了看 WorkBuddy 的数据分布工作空间目录项目文件、记忆、自动化配置等在C:\Users\用户名\WorkBuddy\下全局配置目录SOUL.md、MEMORY.md、插件、二进制文件等在C:\Users\用户名\.workbuddy\下光插件和运行时就有 500 MB目标把这两块数据全部迁移到 D 盘释放 C 盘空间。二、备份2.1 复制工作空间robocopy C:\Users\用户名\WorkBuddy\Claw D:\WorkBuddy\Claw /E /COPYALL2.2 复制全局配置robocopy C:\Users\用户名\.workbuddy D:\WorkBuddy\.workbuddy /E /COPYALL注意复制时如果有文件被锁定跳过比如 Cookies不影响核心功能重启后会自动生成。2.3 验证备份确认 D 盘以下关键文件存在工作空间项目文件、.workbuddy/目录含automations-registry.json、memory/等全局配置MEMORY.md、SOUL.md、IDENTITY.md、USER.md三、卸载重装正常卸载 WorkBuddy然后重新安装。安装路径选哪里都行——程序本体和数据是分离的只要后面 Junction 配好数据全在 D 盘。四、核心问题无法切换工作空间路径重装后启动 WorkBuddy发现工作空间还是默认指向 C 盘原路径而且应用内没有切换工作空间目录的操作入口。试了各种方法设置界面、配置文件、命令行参数……都找不到切换路径的地方。这就是本次迁移最大的障碍。五、解决方案目录联接Junction5.1 原理既然不能让 WorkBuddy 去读 D 盘那就让C 盘路径自己指向 D 盘。Windows 的mklink /J可以创建目录联接Junction让系统以为文件在 C 盘实际读写都走 D 盘。对 WorkBuddy 完全透明不需要改任何配置。mklink /J C盘原路径 D盘实际数据Junction vs Symbolic Linkmklink /JJunction不需要管理员权限兼容性更好推荐mklink /DSymbolic Link需要管理员权限5.2 最终需要的 Junction 结构C 盘路径→D 盘实际数据说明C:\Users\用户名\WorkBuddy→D:\WorkBuddy工作空间项目文件等C:\Users\用户名\.workbuddy→D:\.workbuddy全局配置为什么全局配置放在D:\.workbuddy而不是D:\WorkBuddy\.workbuddy让两条 Junction 路径完全独立不重叠避免父子级 Junction 嵌套问题。六、操作过程含踩坑实录第 1 步创建工作空间 Junctionmklink /J C:\Users\用户名\WorkBuddy\Claw D:\WorkBuddy\Claw这一步比较顺利直接创建成功。后续优化改为创建父级 JunctionC:\Users\用户名\WorkBuddy→D:\WorkBuddy这样Claw子目录自动解析不需要单独的子 Junction。但这一步需要先删除子 Junction详见后面的踩坑。第 2 步创建全局配置 Junctionmklink /J C:\Users\用户名\.workbuddy D:\.workbuddy️ 坑 1WorkBuddy 运行时不断重建 .workbuddy 目录现象删除C:\Users\用户名\.workbuddy后WorkBuddy 进程立即重建该目录删除跟不上重建速度无法创建 Junction。原因WorkBuddy 运行时会持续向.workbuddy写入文件插件下载、缓存等。解决方案先重命名旧目录再创建 Junction最后删除旧目录ren C:\Users\用户名\.workbuddy .workbuddy_old mklink /J C:\Users\用户名\.workbuddy D:\.workbuddy rmdir /S /Q C:\Users\用户名\.workbuddy_oldren是瞬间完成的WorkBuddy 还没来得及重建就已经改名了。第 3 步合并为父级 Junction简化结构最初创建的是C:\Users\用户名\WorkBuddy\Claw→D:\WorkBuddy\Claw的子 Junction。后来想简化为父级 JunctionC:\Users\用户名\WorkBuddy→D:\WorkBuddy这样Claw会自动解析不需要单独的 Junction。️ 坑 2工作空间目录被进程锁定现象rmdir C:\Users\用户名\WorkBuddy\Claw提示另一个程序正在使用此文件ren也失败。原因Claw是当前 WorkBuddy 的工作空间目录进程持续占用。解决方案必须完全关闭 WorkBuddy包括 VS Code 窗口和系统托盘图标然后在外部执行。️ 坑 3关闭 WorkBuddy 后仍残留空目录现象关闭 WorkBuddy 后Claw变成空目录之前的 Junction 被删了但 WorkBuddy 重建了空目录rmdir可以删除。解决方案创建.bat脚本关闭 WorkBuddy 后以管理员身份运行echo off echo 开始修复 Junction echo [1/4] 删除旧的子 Junction / 空目录... rmdir C:\Users\用户名\WorkBuddy\Claw 2nul echo [2/4] 删除空的 WorkBuddy 目录... rmdir C:\Users\用户名\WorkBuddy 2nul echo [3/4] 创建父级 Junction: WorkBuddy -^ D:\WorkBuddy mklink /J C:\Users\用户名\WorkBuddy D:\WorkBuddy if errorlevel 1 ( echo *** 错误Junction 创建失败请检查 WorkBuddy 是否已完全关闭。 pause exit /b 1 ) echo [4/4] 验证... dir C:\Users\用户名\WorkBuddy\Claw nul 21 if errorlevel 1 ( echo *** 验证失败无法通过 Junction 访问 Claw 目录 pause exit /b 1 ) echo. echo 全部完成 echo Junction 结构 echo C:\Users\用户名\WorkBuddy -^ D:\WorkBuddy echo C:\Users\用户名\.workbuddy -^ D:\.workbuddy echo. echo 请重新启动 WorkBuddy。 pause操作步骤完全关闭 WorkBuddy找到.bat脚本右键 → 以管理员身份运行看到全部完成后重启 WorkBuddy七、恢复后验证重启 WorkBuddy 后执行 4 项验证验证项方法结果项目文件读取对话中说看下持仓表等指令✅ 文件正常读取全局记忆生效检查 SOUL.md / MEMORY.md 内容✅ 配置完整自动化任务重建对话中说重建自动化调度✅ 从 JSON 注册表重建全部调度数据查询可用执行依赖 Python 环境的功能⚠️ 需补装依赖见下️ 坑 4Python 依赖缺失现象重装后 Python 环境是干净的import tushare报ModuleNotFoundError。原因卸载重装后 Python 环境被重置之前pip install的包都没了。解决方案pip install tushare八、自动化调度重建WorkBuddy 的自动化调度定时任务存储在项目的.workbuddy/automations-registry.json中。重装后需要手动触发重建在对话中输入重建自动化调度WorkBuddy 读取 JSON 注册表自动重建全部调度工作目录cwds会自动适配为当前路径️ 坑 5RRULE 格式不兼容现象部分调度创建失败提示 RRULE 格式错误。原因WorkBuddy 的自动化系统不支持BYMONTH、BYMONTHDAY、YEARLY等 RRULE 字段也不支持BYSECOND。解决方案不支持的频率改为FREQDAILY在 prompt 首行加入日期判断逻辑非目标日期直接跳过移除所有BYSECOND功能行为不变只是触发频率从精确日期变成每天触发但自动跳过九、最终架构C盘Junction对应用透明 D盘实际数据 ───────────────────────── ───────────────────────── C:\Users\用户名\WorkBuddy\ ──→ D:\WorkBuddy\ └── Claw\工作空间 └── Claw\项目文件记忆配置 └── .workbuddy\ ├── automations-registry.json └── memory\ ├── MEMORY.md └── YYYY-MM-DD.md C:\Users\用户名\.workbuddy\ ──→ D:\.workbuddy\ ├── SOUL.md ├── SOUL.md ├── MEMORY.md ├── MEMORY.md ├── IDENTITY.md ├── IDENTITY.md ├── USER.md ├── USER.md ├── binaries\491 MB ├── binaries\ ├── plugins\53 MB ├── plugins\ └── skills-marketplace\43 MB └── skills-marketplace\C 盘释放约 575 MB 空间所有数据实际存储在 D 盘。十、经验总结10.1 核心原则先备份再操作复制到 D 盘后验证完整性确认无误再删除 C 盘Junction 优于符号链接mklink /J不需要管理员权限兼容性更好关闭应用再操作WorkBuddy 运行时会锁定工作空间目录和持续重建配置目录必须完全关闭后再创建 Junction两条 Junction 独立工作空间和全局配置放在不同的 D 盘路径下避免路径嵌套问题10.2 遇到的 5 个坑#问题根因解决方案1无法切换工作空间路径应用内无此入口用 Junction 让 C 盘路径指向 D 盘2.workbuddy 目录删不掉WorkBuddy 运行时持续重建ren重命名旧目录 → 创建 Junction → 删除旧目录3工作空间目录锁定WorkBuddy 进程占用关闭 WorkBuddy → 运行 .bat 脚本 → 重启4Python 依赖缺失重装后环境干净pip install补装5RRULE 格式不兼容自动化系统不支持部分字段改用 DAILY prompt 日期判断10.3 给后来者的建议备份用 robocopy/E /COPYALL保证完整性比手动复制可靠验证再删除D 盘备份验证通过后再动 C 盘别提前删准备一个 .bat 脚本WorkBuddy 运行时锁定的目录只能关闭后操作提前写好脚本一次搞定记下自动化调度注册表automations-registry.json是调度的种子文件有了它随时可以重建先装依赖再验证重装后 Python 依赖会丢先pip install补装再测试功能附完整操作脚本将以下内容保存为migrate_workbuddy.bat修改用户名后在完全关闭 WorkBuddy 的情况下以管理员身份运行echo off chcp 65001 nul echo echo WorkBuddy 数据迁移工具 (Junction) echo echo. REM 配置区按需修改 set USERNAME你的用户名 set WORKBUDDY_CC:\Users\%USERNAME%\WorkBuddy set WORKBUDDY_DD:\WorkBuddy set DOTWORKBUDDY_CC:\Users\%USERNAME%\.workbuddy set DOTWORKBUDDY_DD:\.workbuddy REM echo [1/8] 删除工作空间子目录如存在... rmdir %WORKBUDDY_C%\Claw 2nul rmdir %WORKBUDDY_C% 2nul echo [2/8] 创建工作空间 Junction... mklink /J %WORKBUDDY_C% %WORKBUDDY_D% if errorlevel 1 ( echo *** 错误工作空间 Junction 创建失败 echo 请确认 WorkBuddy 已完全关闭包括系统托盘。 pause exit /b 1 ) echo [3/8] 验证工作空间 Junction... dir %WORKBUDDY_C%\Claw nul 21 if errorlevel 1 ( echo *** 验证失败无法通过 Junction 访问工作空间 pause exit /b 1 ) echo 工作空间 Junction 验证通过。 echo. echo [4/8] 删除旧的全局配置目录如存在... rmdir %DOTWORKBUDDY_C% 2nul if exist %DOTWORKBUDDY_C% ( echo 目录仍存在尝试重命名... ren %DOTWORKBUDDY_C% .workbuddy_old 2nul ) echo [5/8] 创建全局配置 Junction... mklink /J %DOTWORKBUDDY_C% %DOTWORKBUDDY_D% if errorlevel 1 ( echo *** 错误全局配置 Junction 创建失败 pause exit /b 1 ) echo [6/8] 验证全局配置 Junction... dir %DOTWORKBUDDY_C%\SOUL.md nul 21 if errorlevel 1 ( echo *** 验证失败无法通过 Junction 访问全局配置 pause exit /b 1 ) echo 全局配置 Junction 验证通过。 echo. echo [7/8] 清理重命名的旧目录如存在... if exist C:\Users\%USERNAME%\.workbuddy_old ( rmdir /S /Q C:\Users\%USERNAME%\.workbuddy_old 2nul ) echo. echo echo 全部完成 echo echo. echo Junction 结构 echo %WORKBUDDY_C% -^ %WORKBUDDY_D% echo %DOTWORKBUDDY_C% -^ %DOTWORKBUDDY_D% echo. echo 请重新启动 WorkBuddy然后输入重建自动化调度。 echo. pause本文记录于 2026-07-04基于 WorkBuddy 实际迁移操作整理。不同版本的 WorkBuddy 可能有差异请根据实际情况调整。