上篇介绍了《PowerShell统计Windows的文件夹大小 》,根据统计结果,我发现总共有几个文件占用比较夸张,具体如下所示:
C:\ProgramData\
Kaspersky Lab 6890.59 MB
NVIDIA 4536.47 MB
NVIDIA Corporation 4189.88 MB
Microsoft 2385.78 MB
Lenovo 1654.15 MB
# 环境变量为 $env:APPDATA
C:\Users\用户\AppData\Roaming
Notion 19016.78 MB
Tencent 7532.22 MB
JetBrains 3691.49 MB
npm-cache 1899.45 MB
# 环境变量为$env:LOCALAPPDATA
C:\Users\用户\AppData\Local
Microsoft 6967.01 MB
NVIDIA 5484.8 MB
JetBrains 3243.41 MB
Temp 2379.17 MB
Programs 1812.47 MB
Lenovo 1506.49 MB
Google 1231.54 MB
Packages 962.48 MB
$env:LOCALAPPDATA 对应 C:\Users\用户\AppData\Local
$env:APPDATA 对应 C:\Users\用户\AppData\Roaming
$env:APPDATA 对应 C:\Users\用户\AppData\Roaming
从上面的统计可以看到,NVIDIA占用真的多啊,此时需要寄出老祖经典名场面

大概看了下,Notion是因为里面的C:\Users\用户\AppData\Roaming\Notion\Partitions占用了18G,直接将其删除掉,保险起见使用如下命令:
# 停止进程
Stop-Process -Name "Notion" -ErrorAction SilentlyContinue
# 删除目录
Remove-Item -Path "$env:APPDATA\Notion\Partitions" -Recurse -Force
Notion 使用了类似浏览器的索引技术(IndexedDB),当你浏览含有大量图片、视频或嵌入内容的页面时,Notion 会将这些资源缓存在本地以提高加载速度。
多账号切换: 如果你在客户端登录了多个账号,每个账号都会生成独立的缓存。
重型页面: 频繁查看带有大量附件的数据库会迅速填满该目录。
多账号切换: 如果你在客户端登录了多个账号,每个账号都会生成独立的缓存。
重型页面: 频繁查看带有大量附件的数据库会迅速填满该目录。
为了避免后期缓存太多导致占用C盘,将其剪切到其他盘,例如E:\AppData\Notion,然后创建软连接到这里
New-Item -ItemType Junction -Path "$env:APPDATA\Notion" -Target "E:\AppData\Notion"
同样的方式可以将JetBrains也如此操作:
New-Item -ItemType Junction -Path "$env:LOCALAPPDATA\JetBrains" -Target "E:\AppData\JetBrains\Local"
New-Item -ItemType Junction -Path "$env:LOCALAPPDATA\JetBrains" -Target "E:\AppData\JetBrains\Roaming"
如果你是用的是CMD,也可以使用如下命令,效果是相同的,但更推荐使用PowerShell:
mklink /j "C:\Users\用户\AppData\Local\JetBrains" "E:\AppData\JetBrains\Local"
设置完成后确认下是否有误
Get-Item "$env:APPDATA\Notion" | Select-Object Mode, LinkType, Target
输出如下:
Mode LinkType Target
---- -------- ------
l---- Junction E:\AppData\Notion
这样就再也不用担心C盘被塞满了。当然,Nvidia也可以这么操作,但是通常不建议这么干。
最佳方案就是笔记本系统盘使用1T的SSD,另一个插槽买个2T SSD,为了方便管理可以将2T的分为D盘和E盘。
关于PowerShell的目录链接和符号链接,大致区别如下:
| 特性 | Junction (目录联接) | Symbolic Link (符号链接) |
| 创建命令 | New-Item -ItemType Junction | New-Item -ItemType SymboliLink |
| 支持对象 | 仅限目录(文件夹) | 目录 + 文件 |
| 跨盘符支持 | 支持(从 C 搬到 D) | 支持 |
| 远程路径 | 不支持(必须是本地硬盘) | 支持(可以链接到局域网共享目录) |
| 路径类型 | 使用绝对路径 | 支持相对路径 |
| 移动目标后 | 立即失效 | 立即失效 |
Junction (目录联接) —— “分身术”
Junction 是 NTFS 文件系统的一种硬性重定向。当你访问 C:\Users\用户\AppData\Local\JetBrains 时,文件系统内核会直接将其重定向到 D:\JetBrains_Data\Local。
- 特点:对于软件来说,它完全意识不到自己在 D 盘工作。它的兼容性最高,非常适合用来搬移
AppData下的软件缓存。 - 历史:从 Windows 2000 开始就存在,非常稳定。
Symbolic Link (符号链接/软链接) —— “更强的快捷方式”
它更像是一个特殊的“文件”,里面记录了目标的路径信息。
- 特点:它可以指向文件(比如把一个巨大的游戏资源文件
.pak链到别处)。 - 缺点:创建符号链接通常需要管理员权限(除非开启了 Windows 开发人员模式)。有些旧软件可能不识别符号链接。





