电源方案pow文件解析脚本

输入

  • 2025/04/12  10:29            20,480 YMV10_VMV9.pow
  • 2025/04/12  09:44            24,576 YMV16_YMPerformance.pow

处理

  • 2025/04/12  11:06             3,901 PM_pow_compare_by_grok.bat
@echo off
setlocal EnableDelayedExpansion

:: 设置工作目录为脚本所在目录
cd /d "%~dp0"

:: 初始化计数器
set "count=0"

:: 遍历 .pow 文件,存储到数组
for %%F in (*.pow) do (
    set "pow_files[!count!]=%%~fF"
    set "names[!count!]=%%~nF"
    set /a count+=1
)

:: 检查文件数量
if !count! lss 2 (
    echo 错误:找到 !count! 个 .pow 文件,预期为 2 个!
    pause
    exit /b
)
if !count! gtr 2 (
    echo 错误:找到 !count! 个 .pow 文件,预期为 2 个!
    pause
    exit /b
)

:: 处理每个 .pow 文件
for /l %%i in (0,1,1) do (
    set "file=!pow_files[%%i]!"
    set "name=!names[%%i]!"
    
    :: 导入电源方案
    echo 正在导入 !file! ...
    powercfg -import "!file!" > import_tmp.txt 2>&1
    set "guids[%%i]="
    for /f "tokens=2 delims=:" %%g in ('type import_tmp.txt ^| findstr /R "GUID"') do (
        set "guids[%%i]=%%g"
        set "guids[%%i]=!guids[%%i]: =!"
    )
    if not defined guids[%%i] (
        echo 错误:无法导入 !file!!请检查文件是否有效或是否有管理员权限。
        echo 错误详情:
        type import_tmp.txt
        del import_tmp.txt
        :: 清理已导入的方案
        for /l %%j in (0,1,%%i-1) do (
            if defined guids[%%j] (
                powercfg -delete !guids[%%j]! 2>nul
            )
        )
        pause
        exit /b
    )
    del import_tmp.txt

    :: 激活并导出设置
    echo 正在导出 !name!.txt ...
    powercfg -setactive !guids[%%i]!
    powercfg -query > "!name!.txt"
    if errorlevel 1 (
        echo 错误:无法查询 !file! 的设置!
        :: 清理已导入的方案
        for /l %%j in (0,1,%%i) do (
            if defined guids[%%j] (
                powercfg -delete !guids[%%j]! 2>nul
            )
        )
        pause
        exit /b
    )
    :: 转换为 ANSI 编码
    type "!name!.txt" > "!name!_tmp.txt"
    move /y "!name!_tmp.txt" "!name!.txt" >nul
)

:: 清理临时电源方案
echo 正在清理临时电源方案 ...
echo 清理前的电源方案列表:
powercfg -l
:: 切换到默认方案(平衡),避免锁定
powercfg -setactive 381b4222-f694-41f0-9685-ff5bb260df2e
for /l %%i in (0,1,1) do (
    if defined guids[%%i] (
        echo 正在删除 GUID: !guids[%%i] ...
        powercfg -delete !guids[%%i]!
        if errorlevel 1 (
            echo 警告:删除 GUID !guids[%%i] 失败,可能已被移除或无权限。
        ) else (
            echo 成功删除 GUID: !guids[%%i]
        )
    )
)
echo 清理后的电源方案列表:
powercfg -l

:: 恢复默认电源方案(平衡模式)
powercfg -setactive 381b4222-f694-41f0-9685-ff5bb260df2e 2>nul

echo 完成!生成文件:!names[0]!.txt, !names[1]!.txt, !diff_file!, !sleep_diff_file!
pause

输出

  • 2025/04/12  11:15                92 diff_YMV10_VMV9_YMV16_YMPerformance_20250412_111506.txt
  • 2025/04/12  11:15            49,728 YMV10_VMV9.txt
  • 2025/04/12  11:15            49,749 YMV16_YMPerformance.txt

差异分析

  • 用notepad++的compare插件
  • idea、pycharm之类代码编辑器也有差异分析功能
  • Quick CPU工具自带电源方案对比功能
  • 结合方案的工况差异,改为你想要的效果,野蛮电源方案V16:个人优化修改记录优化用了本流程