定时切换电源方案的脚本

wen 实用脚本 1

本文目录导读:

定时切换电源方案的脚本

  1. 单次定时切换电源方案(例:30 分钟后切换到“节能”)
  2. 循环定时切换电源方案(每 N 分钟在“平衡”与“高性能”之间切换)
  3. 如何获取电源方案 GUID
  4. 使用说明
  5. 高级:带倒计时显示的版本(可选)

下面为您编写一个定时切换电源方案的批处理脚本(Windows 系统),该脚本支持两种模式:

  1. 单次定时切换(30 分钟后切换到“节能”模式)
  2. 循环定时切换(例如每 2 小时在“平衡”和“高性能”之间来回切换)

单次定时切换电源方案(例:30 分钟后切换到“节能”)

@echo off
chcp 65001 >nul定时切换电源方案
:: 设置要切换到的电源方案 GUID(这里以“节能”为例:a1841308-3541-4fab-bc81-f71556f20b4a)
set "GUID=a1841308-3541-4fab-bc81-f71556f20b4a"
set "WAIT_MINUTES=30"
echo 将在 %WAIT_MINUTES% 分钟后切换到“节能”电源方案。
echo 按任意键取消...
timeout /t 5 /nobreak >nul
:: 等待指定分钟数(1分钟 = 60秒)
timeout /t %WAIT_MINUTES%*60 /nobreak >nul
:: 执行切换
powercfg /setactive %GUID%
echo 已切换至“节能”电源方案。
pause

循环定时切换电源方案(每 N 分钟在“平衡”与“高性能”之间切换)

@echo off
chcp 65001 >nul循环电源方案切换器
:: 定义两个方案的 GUID
:: 平衡: 381b4222-f694-41f0-9685-ff5bb260df2f
:: 高性能: 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c
set "BALANCED=381b4222-f694-41f0-9685-ff5bb260df2f"
set "HIGH_PERF=8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c"
:: 切换间隔(分钟)
set "INTERVAL=60"
echo 每 %INTERVAL% 分钟切换一次电源方案(平衡 ↔ 高性能)
echo 按 Ctrl+C 停止运行。
echo.
:loop
    :: 获取当前活跃方案
    for /f "tokens=2 delims=: " %%a in ('powercfg /getactivescheme ^| findstr /i "GUID"') do set "CURRENT=%%a"
    if "%CURRENT%"=="%BALANCED%" (
        powercfg /setactive %HIGH_PERF%
        echo [%date% %time%] 切换到 高性能
    ) else (
        powercfg /setactive %BALANCED%
        echo [%date% %time%] 切换到 平衡
    )
    timeout /t %INTERVAL%*60 /nobreak >nul
    goto loop

如何获取电源方案 GUID

管理员命令提示符 下运行:

powercfg /list

得到类似输出:

现有电源使用方案 (* 表示活动)
-----------------------------------
电源方案 GUID: 381b4222-f694-41f0-9685-ff5bb260df2f  (平衡)
电源方案 GUID: 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c  (高性能)
电源方案 GUID: a1841308-3541-4fab-bc81-f71556f20b4a  (节能)

把对应的 GUID 复制替换到脚本中的变量即可。


使用说明

操作 说明
运行脚本 双击 .bat 或以管理员身份运行(推荐)
停止循环 Ctrl+C 并输入 Y 确认
修改方案 替换脚本开头的 GUID 变量值
修改间隔 修改 INTERVAL(分钟)或 WAIT_MINUTES

高级:带倒计时显示的版本(可选)

如果你想要在等待期间看到剩余时间,可以用 PowerShell 脚本(更灵活):

# 30分钟后切换到“节能”
$guid = "a1841308-3541-4fab-bc81-f71556f20b4a"
$minutes = 30
$seconds = $minutes * 60
for ($i = $seconds; $i -ge 0; $i--) {
    Write-Host "`r剩余 $([math]::Floor($i/60)) 分 $($i % 60) 秒" -NoNewline
    Start-Sleep -Seconds 1
}
powercfg /setactive $guid
Write-Host "`n已切换至节能方案"

保存为 .ps1,右键 使用 PowerShell 运行 即可。


如果你需要系统开机自启、定时任务计划(Task Scheduler)整合多条件切换(如电量低于 20% 自动节能),也可以告诉我,我可以进一步帮你扩展脚本。

抱歉,评论功能暂时关闭!