仅使用命令提示符,是否可以在关闭笔记本电脑机盖时禁用睡眠模式?
仅使用命令提示符,是否可以在关闭笔记本电脑机盖时禁用睡眠模式?
Answers:
您要查找的命令是powercfg。打开命令提示符并键入powercfg –q >poweroptions.txt
这将创建一个文本文件(poweroptions.txt),其中包含用于电源设置的所有GUID。打开poweroptions.txt文件,找到当前电源使用方案的GUID。这应该在文件的最顶部,如下所示:
Power Scheme GUID: 381b4222-f694-41f0-9685-ff5bb260df2e (Balanced)
仅将GUID(在此示例中为- 381b4222-f694-41f0-9685-ff5bb260df2e
)复制并粘贴到新的空文本文件中。然后滚动浏览并找到“电源按钮和盖子”操作的子组GUID。将此GUID复制并粘贴到相同的新文本文件中,作为单独的一行。现在找到“关闭动作”的电源设置GUID,然后将其复制并粘贴到其他两个下面。另外,请注意您要设置的选项的“可能的设置索引”数字(禁用为000)。您必须为每种电源方案(直流和交流电源)运行一次命令,才能涵盖两种情况。该命令将如下所示:
Powercfg –SETACVALUEINDEX [put power scheme GUID here] [put subgroup GUID here] [put power setting GUID here] 000
我对此进行了测试,命令如下所示:
powercfg -SETACVALUEINDEX 381b4222-f694-41f0-9685-ff5bb260df2e 4f971e89-eebd-4455-a8de-9e59040e7347 5ca83367-6e45-459f-a27b-476b1d01c936 000
第二条命令用于用户使用电池供电,并且除了使用开关外,其他命令完全相同–SETDCVALUEINDEX
。
powercfg
似乎是“如何不编写命令行工具”的一个很好的例子:/
这里的主题是如何通过CMD禁用睡眠模式?
假设您已配置笔记本计算机的机盖,使其在关闭时不执行任何操作:
powercfg -x -standby-timeout-ac 0
(以某种方式,开关-x对我不起作用,所以我将其更改为/ x并且可以工作。其余的开关保持为-standby-timeout-ac)
如Microsoft Technet页“ Powercfg命令行选项”(https://technet.microsoft.com/en-us/library/cc748940(v=ws.10).aspx)所示,命令为:
> powercfg -x设置值 (您正在查看的值为“ standby”)
因此: > powercfg -x -standby-timeout-ac分钟(禁用= 0分钟)
注意:ac =已连接到电源/ dc =可以使用电池供电(因此,如果您要在使用电池供电时禁用睡眠模式,请在命令中将“ ac”替换为“ dc”,因此看起来像powercfg -x -standby-timeout-dc 0
)
-x
在于它是一个完整的破折号,而不是正常的负号。
基于先前的答案,我编写了一个批处理文件。
@echo off
for /f "tokens=4 delims= " %%i IN ('powercfg -q ^| find "Power Scheme GUID:"') do Set StrOne=%%i
for /f "tokens=3 delims= " %%i IN ('powercfg -q ^| find "(Power buttons and lid)"') do Set StrTwo=%%i
for /f "tokens=4 delims= " %%i IN ('powercfg -q ^| find "(Lid close action)"') do Set StrThree=%%i
powercfg -SETACVALUEINDEX %StrOne% %StrTwo% %StrThree% 000
如果尝试直接在命令提示符下(批处理之外)运行这些命令,则需要将%% i更改为%i。
基于Jeremy和Jonas Herdick的脚本,我编写了此切换脚本,该脚本独立于本地化(因此也适用于德语窗口),并帮助我在放置盖时关闭并恢复盖关闭动作(恢复到以前的状态)将笔记本放到基座上(需要关闭盖子)。是的,别忘了在提到KallePower之类的每次更改后重新激活当前的电源方案
@echo off
setlocal enabledelayedexpansion
for /f "tokens=2 delims=:(" %%i in ('powercfg /GETACTIVESCHEME') do set ACTIVESCHEME=%%i
for /f "tokens=2 delims=:(" %%i in ('powercfg -q %ACTIVESCHEME% SUB_BUTTONS LIDACTION ^| findstr "[0-9a-z]*-[0-9a-z]*-[0-9a-z]*-[0-9a-z]*-[0-9a-z]*"') do set FULLPATH=!FULLPATH! %%i
for /f "tokens=2 delims=:(" %%i in ('powercfg /q %FULLPATH% ^| findstr "[0-9]x[0-9]*"') do (
set CURRENTSETTINGAC=!CURRENTSETTINGDC!
set CURRENTSETTINGDC=%%i
)
set CURRENTSETTINGAC=%CURRENTSETTINGAC:~-1%
set CURRENTSETTINGDC=%CURRENTSETTINGDC:~-1%
powercfg -SETACVALUEINDEX %FULLPATH% 0
powercfg -SETDCVALUEINDEX %FULLPATH% 0
powercfg /s %ACTIVESCHEME%
pause
powercfg -SETACVALUEINDEX %FULLPATH% %CURRENTSETTINGAC%
powercfg -SETDCVALUEINDEX %FULLPATH% %CURRENTSETTINGDC%
powercfg /s %ACTIVESCHEME%
REM Disabling all Sleep Parameters
@echo off
powercfg /x -hibernate-timeout-ac 0
powercfg /x -hibernate-timeout-dc 0
powercfg /x -disk-timeout-ac 0
powercfg /x -disk-timeout-dc 0
powercfg /x -monitor-timeout-ac 0
powercfg /x -monitor-timeout-dc 0
Powercfg /x -standby-timeout-ac 0
powercfg /x -standby-timeout-dc 0
Pause
Microsoft 在命令行选项上有很长的篇幅powercfg
。
您可能正在阅读-x
交换机上的内容。不过,我只用于powercfg
更改休眠设置。
powercfg
没有用于更改的任何选项lid close action
。电源选项存储在注册表下的位置,HKEY_CURRENT_USER\Control Panel\PowerCfg\GlobalPowerPolicy
但不清楚二进制数据中的哪个值与哪个设置一起使用。
还有一件事。请记住在脚本末尾添加“ powercfg -S%StrOne%”以激活设置。其他设置只会设置,但不会保存/激活。