首页 > 其他分享 >使用批处理,切换电源计划,切换自动休眠时间

使用批处理,切换电源计划,切换自动休眠时间

时间:2024-11-01 21:42:24浏览次数:1  
标签:set 批处理 电源 echo 休眠 STANDBYIDLE 切换 REM

1、打开命令提示符:

Win + R,输入 cmd,然后按 Enter

2、列出电源计划的GUID

powercfg /list

获取输出结果取下:

C:\Users\Administrator>powercfg /list

现有电源使用方案 (* Active)
-----------------------------------
电源方案 GUID: 381b4222-f694-41f0-****-ff5bb260df2e  (平衡)
电源方案 GUID: 8c5e7fda-e8bf-4a96-****-a6e23a8c635c  (高性能) *
电源方案 GUID: a1841308-3541-4fab-****-f71556f20b4a  (节能)
电源方案 GUID: e34effd5-6495-415f-****-7318bc95e92c  (卓越性能)

此处隐藏掉了部分数字,正常获取没有*
下面的示例代码同理,需要自行替换GUID

3、新建txt文件,重命名为 ModifyPowerPlan.bat,切记需要改文件后缀

批处理文件内容如:

当前bat文件的实现效果为: 每次双击执行文件,电源模式切换到性能模式,休眠时间在0分钟(永不休眠)和3分钟之间切换

@echo off
REM support chinese
chcp 65001
setlocal enabledelayedexpansion

REM 选择高性能或平衡模式
::set GUIDNAME=SCHEME_BALANCED
set GUIDNAME=SCHEME_MIN

REM key1:使计算机进入睡眠状态的时间
set key1=STANDBYIDLE
REM key2:关闭显示器的时间
set key2=VIDEOIDLE

REM 睡眠时间 0 或 3分钟
set time_choose1=0
set time_choose2=3

REM 调用函数并传递参数
set key=%key1%
call :GetAcPowerIndex %GUIDNAME% %key% %time_choose1% %time_choose2%
set key=%key2%
call :GetAcPowerIndex %GUIDNAME% %key% %time_choose1% %time_choose2%
pause
exit /b

REM 函数放在使用的后面
:GetAcPowerIndex
set highPerformanceGUID=8c5e7fda-e8bf-4a96-****-a6e23a8c635c
set balancedGUID=381b4222-f694-41f0-****-ff5bb260df2e
set setGUIDName=%~1
set setGUID=
set key=%~2
set lineCount=0
set outputLines=0
set acPowerIndex=

REM 检查GUID的模式
if "!setGUIDName!"=="SCHEME_MIN" (
    ::echo %setGUIDName% is SCHEME_MIN.
	echo 切换到高性能电源计划
	REM 保在设置变量时没有多余的空格
	set setGUID=%highPerformanceGUID%
) else (
    ::echo %setGUIDName% is SCHEME_BALANCED.
	echo 切换到平衡电源计划
	REM 保在设置变量时没有多余的空格
	set setGUID=%balancedGUID%
)
REM 切换到电源计划
powercfg /setactive %setGUID%

for /f "delims=" %%i in ('powercfg /query %highPerformanceGUID%') do (
    if !outputLines! lss 6 (
        echo %%i | findstr /i %key% >nul
        if not errorlevel 1 (
            set outputLines=0
            set lineCount=1
        ) else (
            if !lineCount! gtr 0 (
                ::echo %%i
                set /a outputLines+=1
                if !outputLines! equ 5 (
                    set acPowerIndex=%%i
                )
            )
        )
    )
)
for /f "tokens=2 delims=: " %%j in ("%acPowerIndex%") do (
    set acPowerIndexValue=%%j
)
REM 将十六进制转换为十进制
set /a decimalValue=0x!acPowerIndexValue:~2!
REM 除以 60
set /a result=decimalValue / 60

set target=
if !result! == %3 (
	echo %result% is equal to %3
	set target=%4
) else (
	if !result! == %4 (
		echo %result% is equal to %4
		set target=%3
	) else (
		echo Error: %result% is not equal %3 or %4
		exit /b 0
	)
)
echo change %key% value to %target%

if "!key!"=="STANDBYIDLE" (
    powercfg /change standby-timeout-ac !target%!
    echo %key% is STANDBYIDLE.
)

if "!key!"=="VIDEOIDLE" (
    powercfg /change monitor-timeout-ac !target!
    echo %key% is VIDEOIDLE.
)
goto:eof

4、自定义参数

(1)性能模式选择
REM 选择高性能或平衡模式
::set GUIDNAME=SCHEME_BALANCED
set GUIDNAME=SCHEME_MIN

行首的 :: 为注释,可以自行选择模式

(2)休眠时间设置
REM 睡眠时间 0 或 3分钟
set time_choose1=0
set time_choose2=3

休眠时间可以自行修改,单位分钟

5、执行效果

双击bat文件即可执行

控制台输出结果:
Active code page: 65001
切换到高性能电源计划
0 is equal to 0
change STANDBYIDLE value to 3
STANDBYIDLE is STANDBYIDLE.
切换到高性能电源计划
0 is equal to 0
change VIDEOIDLE value to 3
VIDEOIDLE is VIDEOIDLE.
Press any key to continue . . .

change STANDBYIDLE value to 3表示切换到3分钟休眠

Active code page: 65001
切换到高性能电源计划
3 is equal to 3
change STANDBYIDLE value to 0
STANDBYIDLE is STANDBYIDLE.
切换到高性能电源计划
3 is equal to 3
change VIDEOIDLE value to 0
VIDEOIDLE is VIDEOIDLE.
Press any key to continue . . .

change STANDBYIDLE value to 0表示切换到0分钟休眠(永不休眠)

标签:set,批处理,电源,echo,休眠,STANDBYIDLE,切换,REM
From: https://www.cnblogs.com/Yzi321/p/18521340

相关文章

  • Anaconda3切换虚拟环境安装rasterio
    rasterio是基于GDAL库的Python库,用于处理栅格数据,安装rasterio需要先安装gdal库。关于gdal和rasterio的版本适配问题,python3.9可以下载图上的两个版本打开prompt列出所有虚拟环境,切换到想要的虚拟环境 condainfo--envs#列出所有环境condaactivateenvs1101#切换环......
  • 【Android】屏幕超时休眠
    前言屏幕超时休眠指的是在设备一段时间没有操作后,自动关闭屏幕显示以节省电量并防止误触。当屏幕进入休眠状态时,通常会关闭屏幕背光,但设备可能仍在运行后台进程。正文Settings应用相关Settings应用的屏幕超时休眠界面相关代码定位到:packages/apps/Settings/res/xml/display_s......
  • swiftui 轮播图切换
    importSwiftUIstructBanner:View{@Statevarcat=0@Statevarpage=0varbody:someView{ZStack{Color.gray.edgesIgnoringSafeArea(.all)VStack{......
  • 使用JavaScript实现:随机曲线之间进行平滑切换
    介绍今天,我运用拉格朗日插值法绘制了一条曲线。然而,我并未止步于静态展示,而是引入了一个定时器,每隔一段时间便对曲线上的点进行动态更新,从而赋予曲线生命般的动态变化。然而,在刷新过程中,我敏锐地察觉到曲线之间的切换显得过于突兀,缺乏流畅感(请见下图)。于是,一个大胆的想法......
  • 轻松掌握在AirtestIDE中切换为本地Python环境的详细指南
    此文章来源于项目官方公众号:“AirtestProject”版权声明:允许转载,但转载必须保留原链接;请勿用作商业或者非法用途一、前言最近有一些新入门的小伙伴们都在问如何在AirtestIDE内使用更多的依赖库,为了解决这个问题,我们建议将AirtestIDE的Python环境切换为本地Python环境,并在本地......
  • MySQL的主从切换在什么情况下使用
    主从切换一般在如下情况下才进行:1、例行的主库重启,主库运行一段时间后需要将主库进行重启扫盘,降低主库死机的风险;2、主库异常情况下切到从库。3、分机房网络调整涉及到主库的情况。一、MySQL的主从切换在什么情况下使用主从切换一般在如下情况下才进行:1、例行的主库重启,主库......
  • 鸿蒙多语言智能输入法设计:动态切换子类型与实时翻译功能
    本文旨在深入探讨多语言智能输入法的设计与实现,基于实际开发实践进行总结。主要作为技术分享与交流载体,难免错漏,欢迎各位同仁提出宝贵意见和问题,以便共同进步。本文为原创内容,任何形式的转载必须注明出处及原作者。在全球化的今天,多语言智能输入法成为了人们跨语言交流的重要工......
  • 鸿蒙多语言智能输入法设计:动态切换子类型与实时翻译功能
    本文旨在深入探讨多语言智能输入法的设计与实现,基于实际开发实践进行总结。主要作为技术分享与交流载体,难免错漏,欢迎各位同仁提出宝贵意见和问题,以便共同进步。本文为原创内容,任何形式的转载必须注明出处及原作者。在全球化的今天,多语言智能输入法成为了人们跨语言交流的......
  • 学习笔记(十五):ArkUi-切换按钮 (Toggle)
    概述:提供状态按钮样式、勾选框样式和开关样式,一般用于两种状态之间的切换一、创建单选框接口形式如下:type为类型,支持三种1、Switch  不包含子组件Toggle({type:ToggleType.Switch,isOn:true}) 2、Checkbox不包含子组件Toggle({type:ToggleType.Checkbox,isOn:true}......
  • (系列十)Vue3中菜单和路由的结合使用,实现菜单的动态切换(附源码)
    说明  该文章是属于OverallAuth2.0系列文章,每周更新一篇该系列文章(从0到1完成系统开发)。   该系统文章,我会尽量说的非常详细,做到不管新手、老手都能看懂。   说明:OverallAuth2.0是一个简单、易懂、功能强大的权限+可视化流程管理系统。友情提醒:本篇文章是属于系......