如何通过CMD禁用睡眠模式?


10

仅使用命令提示符,是否可以在关闭笔记本电脑机盖时禁用睡眠模式?


1
出于好奇,这仅仅是一个理论上的问题,还是您出于某些特定原因需要这样做?我问,因为如果是这种情况,可能还有其他方法可以实现它。
Shinrai 2011年

好吧,我需要远程进行操作,而我只有笔记本电脑的命令提示符。
kb67 2011年

1
只是让笔记本电脑的用户完成操作难道不是一件容易的事吗?我认为iglvzx的评论是正确的,没有办法手动更改注册表即可轻松更改盖子操作。
Shinrai 2011年

好吧,我被证明是错误的,有一种方法可以通过powercfg来完成,但是我确实认为它涉及到足够多的内容,以至于仅通过它们进行交流可能会更容易。
Shinrai 2011年

Answers:


13

您要查找的命令是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

这是Microsoft提供的官方Powercfg命令行选项页,以供进一步参考。


大卫,您好-我很高兴看到Microsoft在这样的网站上进行人员拓展,这令人鼓舞。但是,实际上并没有鼓励在任何Stack Exchange网站上签名您的帖子,这是您的用户徽章的用途。
Shinrai 2011年

Shrinrai,对不起,我每天都访问许多不同的论坛,很难保证所有功能的一致性。我将查看我的用户徽章。
dwolters 2011年

1
powercfg似乎是“如何不编写命令行工具”的一个很好的例子:/
Martin von Wittich 2014年

7

这里的主题是如何通过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


1
这适用于Win 7和Win 10,谢谢!唯一的要求-以管理员身份运行CMD。
TPAKTOPA

1
问题-x在于它是一个完整的破折号,而不是正常的负号。
乔尔·科洪

2

基于先前的答案,我编写了一个批处理文件。

@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。


1

基于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%

1
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

0

Microsoft 在命令行选项上有很长的篇幅powercfg

您可能正在阅读-x交换机上的内容。不过,我只用于powercfg更改休眠设置。


1
powercfg没有用于更改的任何选项lid close action。电源选项存储在注册表下的位置,HKEY_CURRENT_USER\Control Panel\PowerCfg\GlobalPowerPolicy但不清楚二进制数据中的哪个值与哪个设置一起使用。
iglvzx 2011年

感谢您的反馈。我不确定,但很高兴我链接到与David相同的地方:-)

0

还有一件事。请记住在脚本末尾添加“ powercfg -S%StrOne%”以激活设置。其他设置只会设置,但不会保存/激活。


0

尝试NoDoz。安装后,您可以nodoz从cmd提示符(或PowerShell终端)运行,以防止系统无限期休眠。或者,您可以传入超时参数,例如-t 6h13m让程序在任意时间后自动结束。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.