Можно ли отключить спящий режим при закрытии крышки ноутбука только с помощью командной строки?
Можно ли отключить спящий режим при закрытии крышки ноутбука только с помощью командной строки?
Ответы:
Команда, которую вы ищете, - 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 (значение, которое вы смотрите, это «режим ожидания»)
следовательно: > 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, если вы пытаетесь запустить эти команды непосредственно в командной строке (за пределами пакета).
Основываясь на сценарии Джереми и Джонаса Хердика, я написал этот сценарий переключения, который не зависит от локализации (также работает с немецкими окнами) и помогает мне отключить и восстановить (до того, что было раньше) действие закрытия крышки при установке моего ноутбук к док-станции (где крышка должна быть закрыта). И да, не забывайте повторно активировать текущую энергетическую схему после каждого изменения, как упомянуто 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%» в конце скрипта, чтобы активировать настройки. Остальные настройки будут просто установлены, но не будут сохранены / активированы.
Попробуйте NoDoz . После установки вы можете запустить nodoz
из командной строки cmd (или терминала PowerShell), чтобы система не спала бесконечно. Или вы можете передать параметр тайм-аута, например, -t 6h13m
чтобы программа автоматически заканчивалась через произвольное время.