skills/move-big-folder-yashu/SKILL.md
将 C 盘大文件夹迁移到其他盘(D/E/F等),通过目录联接(Junction)保持原路径可用,释放 C 盘空间。当用户提到 C 盘空间不足、C 盘变红、迁移大文件夹、释放 C 盘空间、软链接迁移时使用此技能。Use when user mentions C drive full, move large folder, free up C drive space, symlink/junction migration.
npx skillsauth add steelan9199/wechat-publisher move-big-folder-yashuInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
帮助用户将 C 盘中的大文件夹安全迁移到其他盘,通过**目录联接(Junction)**让所有程序照常运行,无感释放 C 盘空间并完美保留原权限。
默认只输出指令,不实际执行。 给出指令后询问用户是否需要代为执行。即使用户同意执行,也必须静默执行(输出重定向到日志文件),避免大量日志占用上下文、浪费 token。
推荐使用 磁盘快速分析软件(免费,5 秒扫描整个 C 盘)快速定位大文件夹:
使用方法:打开 磁盘快速分析软件 -> 选择 C 盘 -> 点击扫描,即可找到占空间最大的文件夹。
用户只需要告诉你以下信息:
目标盘符由 AI 主动询问用户,不能默认假设。因为每台电脑的硬盘配置不同,用户可能想迁移到 D 盘、E 盘、F 盘或其他盘。
示例:用户说"把 C:\Users\Administrator\AppData\Local\app_shell_cache_6383 迁移一下"
AI 应回应:"请问要迁移到哪个盘?(D/E/F...)"
目标路径 = {目标盘符}:\CTo{目标盘符}\ + 原 C 盘路径(去掉 C:\)
| 原路径 | 目标盘符 | 目标路径 |
| ---------------------------------- | -------- | --------------------------------------- |
| C:\Users\Admin\AppData\Local\xxx | D | D:\CToD\Users\Admin\AppData\Local\xxx |
| C:\ProgramData\SomeApp | E | E:\CToE\ProgramData\SomeApp |
| C:\Users\Admin\.cache\pip | D | D:\CToD\Users\Admin\.cache\pip |
以迁移 C:\Users\Administrator\AppData\Local\app_shell_cache_6383 到 D 盘为例:
第 1 步:使用 robocopy 完美克隆文件夹到目标盘(含权限)
robocopy "C:\Users\Administrator\AppData\Local\app_shell_cache_6383" "D:\CToD\Users\Administrator\AppData\Local\app_shell_cache_6383" /E /COPYALL /R:3 /W:1 /MT:8 /NP /NDL
参数说明:
/E包含所有子目录(含空目录),/COPYALL完美克隆所有数据、属性和NTFS权限,/R:3遇到占用文件重试3次,/W:1每次重试间隔1秒,/MT:8开启8线程极速复制,/NP不显示复制进度(减少日志),/NDL不输出目录列表(减少日志)。(注:robocopy 会自动创建目标路径,无需手动新建)
第 2 步:删除 C 盘原文件夹
Remove-Item -Path "C:\Users\Administrator\AppData\Local\app_shell_cache_6383" -Recurse -Force
注意:如果此步骤报错提示"文件正被使用",说明相关软件未关闭。请彻底关闭软件后重试此命令。
第 3 步:创建目录联接(把 C 盘路径无缝指向目标盘)
New-Item -ItemType Junction -Path "C:\Users\Administrator\AppData\Local\app_shell_cache_6383" -Target "D:\CToD\Users\Administrator\AppData\Local\app_shell_cache_6383"
创建联接(Junction)后,所有程序访问原来的 C 盘路径时,会自动跳转到目标盘,完全无感。
当用户提供要迁移的文件夹路径后,必须按以下流程操作:
在给出任何迁移指令之前,必须先向用户确认目标盘符。这是最优先的操作。
必须做的事:
Get-PSDrive -PSProvider FileSystem | Select-Object Name, @{N='Used(GB)';E={[math]::Round($_.Used/1GB,1)}}, @{N='Free(GB)';E={[math]::Round($_.Free/1GB,1)}} | Format-Table -AutoSize
$size = (Get-ChildItem -Path "源文件夹路径" -Recurse -File -ErrorAction SilentlyContinue | Measure-Object -Property Length -Sum).Sum; Write-Host "文件夹大小: $([math]::Round($size/1GB,2)) GB"
目标盘符确认:
- 待迁移文件夹大小:12.5 GB
- 当前可用盘符及剩余空间:
| 盘符 | 已用(GB) | 剩余(GB) | | ---- | -------- | -------- | | C | 120.3 | 52.7 | | D | 80.1 | 150.2 | | E | 200.0 | 300.5 |
- 目标盘符剩余空间不足时:如果用户选择的盘符剩余空间小于源文件夹大小,必须警告用户并建议更换盘符。
示例:
目标盘符确认:
- 待迁移文件夹大小:12.5 GB
| 盘符 | 已用(GB) | 剩余(GB) | | ---- | -------- | -------- | | D | 80.1 | 150.2 | | E | 200.0 | 300.5 |
请问要迁移到哪个盘?(D/E/F...)
注意事项:
在用户确认目标盘符后,必须先分析该文件夹,并向用户展示以下信息:
C:\Windows 及其所有子目录C:\Program Files\Windows* 及系统自带组件C:\Program Files (x86)\Common Files 系统公共组件库(强行迁移会蓝屏或报错)C:\ProgramData\Package Cache 安装包缓存(强行迁移会导致软件无法卸载/更新)C:\ProgramData\Microsoft\Windows 系统配置C:\Users\{用户名}\NTUSER.DAT 等注册表文件C:\Boot、C:\Recovery、C:\System Volume Information*WeType*、*Sogou*、*InputMethod*、*IME* 等):输入法通过 TSF 注入到几乎所有进程中,文件被大量进程锁定,极难彻底关闭,迁移后大概率因无法删除原文件而失败,不建议迁移示例输出格式:
文件夹分析结果:
- 路径:
C:\Users\Administrator\AppData\Local\app_shell_cache_6383- 用途:这是某应用程序的本地缓存文件夹,用于存储临时数据以加速程序加载
- 安全等级:🟢 安全迁移
- 建议:可以放心迁移,不会影响任何程序的正常使用。请确认相关软件已关闭。
安全检查通过后,将完整的三步命令展示给用户,并在末尾询问是否需要代为执行。
输出格式要求:
用户明确同意执行后,按分步静默执行模式操作。核心原则:输出重定向到日志文件,不回显到上下文,每步仅报告成功或失败。
执行规则:
{目标盘符}:\CTo{目标盘符}\migration.log,不回显$? 或退出码判断成败,用一句话报告结果静默执行命令示例(以目标盘符 D 为例,实际应根据用户选择的盘符替换):
# 第 1 步:robocopy(静默,日志写入文件)
Write-Host "正在执行第 1 步:克隆文件夹到 D 盘..."
robocopy "C:\Users\Administrator\AppData\Local\app_shell_cache_6383" "D:\CToD\Users\Administrator\AppData\Local\app_shell_cache_6383" /E /COPYALL /R:3 /W:1 /MT:8 /NP /NDL /NJH /NJS | Out-File "D:\CToD\migration.log" -Append
# robocopy 退出码 0-7 为成功,8+ 为失败
if ($LASTEXITCODE -lt 8) { Write-Host "✅ 第 1 步完成:文件夹已克隆" } else { Write-Host "❌ 第 1 步失败,退出码 $LASTEXITCODE,请查看 D:\CToD\migration.log" }
# 第 2 步:删除原文件夹(静默)
Write-Host "正在执行第 2 步:删除 C 盘原文件夹..."
Remove-Item -Path "C:\Users\Administrator\AppData\Local\app_shell_cache_6383" -Recurse -Force -ErrorAction SilentlyContinue
if ($?) { Write-Host "✅ 第 2 步完成:原文件夹已删除" } else { Write-Host "❌ 第 2 步失败,可能文件被占用,请关闭相关程序后重试" }
# 第 3 步:创建 Junction(静默)
Write-Host "正在执行第 3 步:创建目录联接..."
New-Item -ItemType Junction -Path "C:\Users\Administrator\AppData\Local\app_shell_cache_6383" -Target "D:\CToD\Users\Administrator\AppData\Local\app_shell_cache_6383" -ErrorAction SilentlyContinue | Out-Null
if ($?) { Write-Host "✅ 第 3 步完成:目录联接已创建" } else { Write-Host "❌ 第 3 步失败,请检查路径是否正确" }
三步全部成功后,运行验证命令并报告结果:
Get-Item "C:\Users\Administrator\AppData\Local\app_shell_cache_6383" | Select-Object Name, LinkType, Target
LinkType 为 Junction,Target 指向目标盘正确路径。向用户报告"迁移成功"。Common Files)、安装缓存(如 Package Cache)。
AppData\Local\Temp)不建议迁移,应建议用户直接清理。如果用户需要一次迁移多个文件夹,逐个按照三步骤执行即可。每个文件夹独立处理,互不影响。
content-media
自动启停视频课程录制所需的辅助程序。激活条件:用户消息须包含以下关键词之一:`我要录制视频课程`、`开始录制视频课程`、`准备录课`、`视频课程录完了`、`录课结束`、`停止录制`。
content-media
生成扁平的 SVG 图(架构图、中心辐射图、流程图、简易时序图、思维导图、组织架构图、2×2对比矩阵、时间线、循环图、鱼骨图),也支持把已有 SVG 文件转成 PNG 图片。激活条件(满足任一即可):生成类关键词 `画架构图`、`画中心辐射图`、`画流程图`、`画时序图`、`画思维导图`、`画脑图`、`画组织架构图`、`画树形图`、`画对比矩阵`、`画四象限`、`画时间线`、`画循环图`、`画鱼骨图`、`画因果分析图`;转换类关键词`SVG 转图片`、`把 SVG 转成图片`、`把 SVG 转成 PNG`。
testing
检查指定技能文档中的废话文字并输出诊断报告。激活条件:用户消息须包含以下关键词之一:`检查技能废话`、`这个技能文档有没有多余内容`、`清理技能文档废话`、`审查技能文档废话`、`清理技能文档历史说明`。
testing
评审一个技能是否「自包含」——即其知识、经验、规范是否全部内置在技能文件内(SKILL.md + references/),不依赖特定 AI 客户端专有的知识接口命令(如 read_me / modules: / show_widget / Visualizer)去外部拉取,也不硬编码某个 AI 软件的私有路径(如 .workbuddy)。同时检查工具依赖(node、浏览器、命令行)是否仅作为用户自备工具声明、未写死私有路径。当用户要求「评审这个技能是否自包含 / 独立」「检查技能知识是否内置」「审查技能的独立性 / 可移植性」「audit / review a skill for self-containment」时触发。产出评审报告:结论(自包含 / 不独立)+ 问题清单(文件:行号 + 引用的外部依赖 + 为何影响独立性)+ 整改建议。