一、背景
RAMMap 是由 微软Sysinternals 出品的一款物理内存分析与清理工具,可以查看当前内存具体的占用情况或执行内存清理。
RAMMap 官方下载:RAMMap - Sysinternals | Microsoft Learn
在使用 RAMMap 清理内存后我的电脑内存占用能得到有效缓解(约从80%降到30%),其底层原理可能时释放了部分未正在使用的缓存工作区内存(我猜的)。但每次打开 RAMMap 都需要接受 UAC 弹窗,然后等待程序读取当前机器的内存,这个过程会卡一段时间,因此研究了此篇内容。
二、实现
1. 编写 .bat 脚本
RAMMap 支持使用启动参数来执行后台运行,因此我们可以使用这种方式来写一个 Windows 原生支持的 .bat 批处理文件来执行这个任务以达到我们想要的一键自动清理的效果。
在一个你规划的目录(你能找到的)中,新建一个 .txt 文件,打开后在文本编辑器中输入如下代码:
具体可根据在 RAMMap 应用中实际使用 Empty 功能的效果来决定执行哪些清理,正常只执行第一步,把剩下的三个去掉即可,全部执行有概率导致部分电脑短暂卡死,需要恢复 1 分钟左右。
编辑完成后 Ctrl + S 保存,然后将该文本文件重命名为 DeepClean.bat,注意一定要把后缀名更改为 .bat !这样双击该文件即可执行清理命令,如下图所示。
不过这样做,在每次调用清理命令时仍然会触发 UAC 弹窗,由于 RAMMap 使用命令参数一次只能执行一个命令参数,所以这样甚至会触发四次 UAC 弹窗,下一步中我们就在此 .bat 文件的基础上使用计划任务命令来达到跳过 UAC 自动执行的效果。
2. 结合计划任务实现一键自动清理
- 打开计划任务: 按下
Win + R键,输入taskschd.msc并回车,打开“任务计划程序”。 - 创建新任务: 在右侧的“操作”栏中,点击 “创建任务...”(注意,不是“创建基本任务”)。
- 设置常规选项:
-
名称: 随便填一个纯英文的名字,例如:
RAMMapClean(请记住这个名字,后面要用)。 -
安全选项: 必须勾选 “使用最高权限运行”。
-
- 设置操作选项:
-
点击 “操作” 标签页,点击 “新建”。
-
程序或脚本: 填入
"C:\Program Files\RAMMap\XXXX.bat"(带双引号,这填你上一步中设置的 .bat 文件的位置)。 -
添加参数(可选): 填入
-Ew -Es -Em -E0 -AcceptEula。 -
点击“确定”。
-
- 设置条件选项(可选但推荐):
-
点击 “条件” 标签页。
-
取消勾选“只有在计算机使用交流电源时才启动此任务”(防止笔记本用电池时无法运行)。
-
- 保存任务: 点击最下方的“确定”保存这个计划任务。
完成了这一步后,我们已经配置好计划任务,接下来只需要在桌面新建一个空白快捷方式,在 对象的位置 处填入唤醒命令即可(注意将 RAMMapClean 替换为您在第一步中起的名字)。
唤醒命令如下:
点击下一步后,给这个快捷方式起一个名字即可。由于我们是新建的空白快捷方式,所以是默认的图标,我们可以对他 右键 选择 属性,选择 更改图标 后选择心仪的应用程序图标配置给他即可。
双击该快捷方式执行检验,发现正常执行内存清理且无 UAC 弹窗,大功告成!
