WorkBuddy C盘迁移到D盘
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_f64aa26d/workbuddy-migrate-c-disk。
技能介绍
它解决什么问题
WorkBuddy 的用户数据目录固定落在 %USERPROFILE%\.workbuddy,其中 binaries、vendor、app、workspace、plugins 是占空间的大头,常见规模在 1.5~2.5 GB。数据装在系统盘的机器用久了很容易被填满,而重装或改配置并不是解决这个问题的正确姿势。
这个技能做的事是:把整个数据目录搬到另一块盘(默认 D:\WorkBuddy),然后用 目录联接(junction) 顶替原来的位置。软件看到的路径完全不变,不需要重装,读写透明地落到目标盘,C 盘空间就此释放。
技能如何工作
核心链路是「同步 → 校验 → 改名保留 → 建联接」,但执行前先做只读预检:
- 前置确认:确认源目录存在并统计大小,确认目标盘剩余空间充足,再用
fsutil reparsepoint query探测源目录是否已经是联接——如果是,直接报告「已完成」,不重复操作。 - 现场生成脚本:技能包内不附带
.bat文件(SkillHub 禁止上传可执行脚本),而是在目标机器上生成D:\WorkBuddy\finish_move.bat,交由用户双击执行。 - 沙箱内先验证算法:把 robocopy 同步、
D⊇S校验、ren改名保留、mklink /J建联接、经联接读取数据这条链路,在临时空目录里原样跑一遍,确认无误后清理临时文件。 - 交给用户执行:顺序是彻底退出 WorkBuddy(含关闭对话窗口)→
Win+E进入目标盘目录 → 双击finish_move.bat→ 看到SUCCESS后重开软件。 - 独立核验:查询 reparse point 确认
Print Name指向目标盘;确认.workbuddy.migrated.bak备份存在于 C 盘;比对经联接读到的文件数与目标盘一致。
适用边界与注意点
- 校验标准是 目标盘包含源盘全部文件且大小一致(
D⊇S),不是字节完全相等。app\session、日志和缓存在运行时随时变化,逐字节比对永远对不齐。 - 不要用回收站 API 删原目录。
Microsoft.VisualBasic.FileIO.DeleteDirectory(SendToRecycleBin)在部分机器上会挂起不返回,导致脚本卡死。改用ren原地改名为.workbuddy.migrated.bak,数据原样可恢复。 .bat里if/else块中的echo文本不要带小括号,会被当成代码块括号导致整段解析失败;全程用goto标签跳转,日志文本保持零括号。- 杀进程不能只写
taskkill /IM WorkBuddy.exe。用 PowerShell 按$_.Name -match 'workbuddy'结束全部匹配进程(含 Helper),并做「杀 → 等 2 秒 → 复检」。WorkBuddy 运行时会锁目录且持续写入,脚本内置进程复检,用户在同步期间重开则中止。 - 任一步失败即中止且不删任何东西。迁移成功后可清理
%USERPROFILE%\AppData\Local\@genieworkbuddy-desktop-updater\installer.exe(约 500 MB 更新包,可安全删);.workbuddy.migrated.bak建议先保留,确认软件长期正常后再手动送回收站。
使用场景
- C盘剩余空间不足,需要把WorkBuddy的.workbuddy数据目录迁到D盘释放空间。
- WorkBuddy装在系统盘且C盘快满,希望不重装软件迁移用户数据。
- 需要确认WorkBuddy数据目录能否安全搬到非系统盘,并保持软件正常读写。
- 迁移后需要核验目录联接指向目标盘,并确认备份可恢复。
适合人员
- 需要把WorkBuddy数据从C盘迁到D盘且不重装软件的Windows个人用户。
- 负责WorkBuddy部署和磁盘空间治理的IT运维工程师。
- 遇到C盘空间不足、需要安全迁移应用数据的桌面运维人员。
- 想确认迁移风险、保留备份并完成核验的技术用户。