写一个bat脚本,自动执行以下任务: 1. 关闭鼠标“增强指针精度” 2. 设置虚拟内存为当前的1....
Created on: December 13, 2025
Created on: December 13, 2025
写一个bat脚本,自动执行以下任务:
下面这份 BAT 脚本(保存为 optimize-win11.bat,右键“以管理员身份运行”)一次性完成所需 4 步,并在末尾自动给出验证结果。脚本中的中文注释便于二次调整。
bat@echo off :: ============================================== :: Windows 11 性能优化批处理 :: 1. 关闭“增强指针精度” :: 2. 将虚拟内存设为当前物理内存的 1.5 倍 :: 3. 导入并激活 Ultimate Performance(低延迟)电源计划 :: 4. 验证所有修改 :: ============================================== :: ---------- 权限检查 ---------- net session >nul 2>&1 if %errorLevel% NEQ 0 ( echo [错误] 请用“以管理员身份运行”方式启动本脚本! pause exit /b ) :: ---------- 1/4 关闭鼠标加速度 ---------- echo. echo ===== 1/4 正在关闭「增强指针精度」... reg add "HKCU\Control Panel\Mouse" /v MouseSpeed /t REG_SZ /d 0 /f reg add "HKCU\Control Panel\Mouse" /v MouseThreshold1 /t REG_SZ /d 0 /f reg add "HKCU\Control Panel\Mouse" /v MouseThreshold2 /t REG_SZ /d 0 /f :: 立即刷新光标设置(无需注销) RUNDLL32.EXE USER32.DLL,UpdatePerUserSystemParameters 1, True :: ---------- 2/4 调整虚拟内存 ---------- echo. echo ===== 2/4 正在计算并设置虚拟内存(=1.5×RAM)... for /f "skip=1 tokens=1" %%m in ('wmic computersystem get TotalPhysicalMemory') do ( if not "%%m"=="" ( set /a _memMB=%%m/1048576 :: Bytes→MB set /a _pageMB=%_memMB%*3/2 goto :memok ) ) :memok echo 检测到物理内存 %_memMB% MB,目标 PageFile = %_pageMB% MB wmic computersystem where name="%computername%" set AutomaticManagedPagefile=False wmic pagefileset where name="C:\\\\pagefile.sys" set InitialSize=%_pageMB%,MaximumSize=%_pageMB% :: ---------- 3/4 导入并启用 Ultimate Performance ---------- echo. echo ===== 3/4 正在启用 Ultimate Performance 电源计划... :: 该 GUID 来源于微软隐藏方案【Ultimate Performance】 e9a42b02-d5df-448d-aa00-03f14749eb61 ([The Windows Club](https://www.thewindowsclub.com/ultimate-performance-power-plan?utm_source=chatgpt.com)) powercfg -duplicatescheme e9a42b02-d5df-448d-aa00-03f14749eb61 >nul powercfg -changename e9a42b02-d5df-448d-aa00-03f14749eb61 "Ultimate Performance - Low Latency" powercfg -setactive e9a42b02-d5df-448d-aa00-03f14749eb61 :: 可选深度调参(CPU 100%常驻、禁用节能等),如需再打开注释中的 powercfg 行。 :: ---------- 4/4 验证并展示结果 ---------- echo. echo ===== 4/4 验证结果 ===== echo [鼠标加速度状态](MouseSpeed 为 0 即关闭): reg query "HKCU\Control Panel\Mouse" /v MouseSpeed echo ------------------------------------------------ echo [虚拟内存设置](单位 MB): wmic pagefileset where name="C:\\\\pagefile.sys" get InitialSize,MaximumSize echo ------------------------------------------------ echo [当前电源方案](应为 Ultimate Performance): powercfg /GETACTIVESCHEME echo ------------------------------------------------ echo * 注意:虚拟内存修改需 **重启** 后才会真正生效。 ([Tutorial Reference](https://tutorialreference.com/batch-scripting/examples/faq/batch-script-how-to-manage-the-windows-page-file?utm_source=chatgpt.com)) echo. echo 所有步骤完成!按任意键退出... pause
| 调整项 | 核心机制 | 资料出处 |
|---|---|---|
| 关闭“增强指针精度” | 将 MouseSpeed、MouseThreshold1、MouseThreshold2 统统设为 0 即可永久禁用鼠标加速度 (Microsoft Learn) | 微软官方问答、十年论坛等用户验证 |
| 虚拟内存 1.5× | 用 WMIC + WMI 获取物理内存并写回 PageFile 参数;需先关闭“自动管理” (Tutorial Reference) | IT Pro 教程、WMIC 官方指南 |
| Ultimate Performance 电源计划 | powercfg -duplicatescheme e9a42b02-... 可在 Win11 家庭版等隐藏环境一键导入;该方案默认关闭核心停机、最小化 C-State,减少微延迟 (The Windows Club) | TheWindowsClub 2025 / WindowsForum 2025 |
常见问题
• 脚本需要管理员权限,否则 WMIC 和 powercfg 会失败。
• 修改虚拟内存后 Windows 会提示重启,这是正常现象。
• 如果 PageFile 在 C 盘之外,请把脚本中的C:\\\\pagefile.sys改成对应盘符即可。
运行完脚本→重启一次→再打开游戏或高负载任务,即可获得更线性的鼠标轨迹、更充足的虚拟内存缓冲,以及微软官方的最低延迟电源配置。祝使用愉快!
bat无法运行,如何手动执行
下面给出 完全脱离 BAT 脚本 的手动做法。跟着 Windows 11 GUI 或命令行一步步操作即可;全部动作需要 管理员权限,个别项目在重启后才生效。
⚠️ 不用重启,设置即时生效;如果游戏仍显示加速度,可先关闭再重新进游戏验证。
例:16 GB RAM → 1.5 × 16 GB ≈ 24 GB = 24576 MB
GUI 方法
Initial size 与 Maximum size 都填上面算好的 MB 数 → Set → OK。命令行一次到位(管理员 CMD 或 PowerShell):
cmd:: 关闭系统自动管理 wmic computersystem where name="%computername%" set AutomaticManagedPagefile=False :: 24 GB 示例;请替换 24576 为你自己的数值 wmic pagefileset where name="C:\\pagefile.sys" set InitialSize=24576,MaximumSize=24576
重启后用 wmic pagefileset list /format:list 检查是否生效。
cmdpowercfg -duplicatescheme e9a42b02-d5df-448d-aa00-03f14749eb61 powercfg -changename e9a42b02-d5df-448d-aa00-03f14749eb61 "Ultimate Performance - Low Latency" powercfg -setactive e9a42b02-d5df-448d-aa00-03f14749eb61
若想极限压低延迟,可在“高级电源设置”里把 处理器电源管理 → 最小/最大处理器状态 统统设 100%,并关闭节能空闲状态 (C-State)。
| 项目 | 快速检查方法 |
|---|---|
| 鼠标加速度 | 再次打开 “Pointer Options”,确认 Enhance pointer precision 处于未勾选 |
| 虚拟内存 | 打开虚拟内存窗口应显示“自定义大小”且数值正确;或运行 wmic pagefileset list /format:list |
| 电源计划 | 管理员窗口输入 powercfg /getactivescheme,应返回刚才的 GUID 与 “Ultimate Performance” 名称 |
.bat。按照上述 GUI / 命令行步骤操作完并重启一次,效果与批处理脚本完全一致。祝顺利!
'墠鐗╃悊鍐呭瓨鐨?1.5' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
'Performance锛堜綆寤惰繜锛夌數婧愯鍒?' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
'璇佹墍鏈変慨鏀?' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
===== 1/4 姝e湪鍏抽棴銆屽寮烘寚閽堢簿搴︺€?..
操作成功完成。
操作成功完成。
操作成功完成。
===== 2/4 姝e湪璁$畻骞惰缃櫄鎷熷唴瀛?=1.5脳RAM)...
无效数字。数字精确度限为 32 位。
找不到操作数。
妫€娴嬪埌鐗╃悊鍐呭瓨 MB锛岀洰鏍?PageFile = MB
正在更新“\USER-20251202HA\ROOT\CIMV2:Win32_ComputerSystem.Name="USER-20251202HA"”的属性
属性更新成功。
格式无效。
提示: <分配列表> = <属性名称>=<属性值> [, <分配列表>]。
===== 3/4 姝e湪鍚敤 Ultimate Performance 鐢垫簮璁″垝...
尝试写入不受支持的设置
===== 4/4 楠岃瘉缁撴灉 =====
[榧犳爣鍔犻€熷害鐘舵€乚锛圡ouseSpeed 涓?0 鍗冲叧闂級:
HKEY_CURRENT_USER\Control Panel\Mouse
MouseSpeed REG_SZ 0
[铏氭嫙鍐呭瓨璁剧疆]锛堝崟浣?MB锛?
没有可用实例。
[褰撳墠鐢垫簮鏂规]锛堝簲涓?Ultimate Performance锛?
电源方案 GUID: 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c (高性能)------------------------------------------------
鎵€鏈夋楠ゅ畬鎴愶紒鎸変换鎰忛敭閫€鍑?..
请按任意键继续. . .
怎么是乱码
根本原因:脚本文件的字符编码跟 CMD 默认代码页不一致
.bat 保存成 UTF-8(或带 BOM),而中文 Windows 控制台默认是 GBK/936。墠鐗╃悊鍐呭瓨...
这样的乱码,并且有时会把乱码当成一条新命令执行,才会出现
不是内部或外部命令 …
在脚本最开头插入一行:
bat@echo off chcp 65001 >nul :: 把控制台切到 UTF-8 setlocal EnableDelayedExpansion
注意
- Windows 11/10 自带的 cmd.exe 在
chcp 65001后已能正常显示 UTF-8 中文。- 把脚本保存成 UTF-8 (无 BOM) 可避免 BOM 字节跑到首行。
- 若仍有个别命令(如
wmic)输出 GBK 而造成混杂,可在用完后chcp 936切回 GBK。
bat@echo off :: 如果文件存成 UTF-8,可把下一行取消注释 :: chcp 65001 >nul :: --- 1. Disable mouse acceleration --- reg add "HKCU\Control Panel\Mouse" /v MouseSpeed /t REG_SZ /d 0 /f reg add "HKCU\Control Panel\Mouse" /v MouseThreshold1 /t REG_SZ /d 0 /f reg add "HKCU\Control Panel\Mouse" /v MouseThreshold2 /t REG_SZ /d 0 /f rundll32 user32.dll,UpdatePerUserSystemParameters 1,True echo [OK] Enhance pointer precision OFF :: --- 2. Set page file = 1.5 × RAM --- for /f "skip=1 tokens=1" %%M in ('wmic computersystem get TotalPhysicalMemory') do ( if not "%%M"=="" ( set /a memMB=%%M/1048576 set /a pageMB=memMB*3/2 goto :SetPage ) ) :SetPage wmic computersystem where name="%computername%" set AutomaticManagedPagefile=False wmic pagefileset where name="C:\\pagefile.sys" set InitialSize=%pageMB%,MaximumSize=%pageMB% echo [OK] PageFile set to %pageMB% MB (RAM=%memMB% MB) :: --- 3. Enable Ultimate Performance plan --- powercfg -duplicatescheme e9a42b02-d5df-448d-aa00-03f14749eb61 >nul powercfg -setactive e9a42b02-d5df-448d-aa00-03f14749eb61 echo [OK] Ultimate Performance active :: --- 4. Verification --- echo. echo ========= CHECK LIST ========= reg query "HKCU\Control Panel\Mouse" /v MouseSpeed wmic pagefileset where name="C:\\pagefile.sys" get InitialSize,MaximumSize powercfg /getactivescheme echo ================================= echo * 虚拟内存需要重启后才能完全生效 * pause
echo 行或 :: 注释里,显示不对也不会影响执行;chcp 65001,乱码问题即可消失。| 现象 | 可能原因 | 快速排查 |
|---|---|---|
| 仍是乱码 | chcp 没生效或文件带 BOM | `type optimize-win11.bat |
| “无效数字” | wmic 没拿到数字 → 变量为空 | 在 CMD 手动跑 wmic computersystem get TotalPhysicalMemory 看能否返回数值 |
| “尝试写入不受支持的设置” | Windows 家庭版偶尔锁定某些电源项 | 先用 GUI 电源管理里手动选 “Ultimate Performance” 尝试 |
按上面两种编码方法任选其一,再运行脚本即可恢复正常中文输出及完整功能。祝你调优顺利!