За допомогою лише командного рядка, чи можна відключити режим сну при закритті кришки ноутбука?
За допомогою лише командного рядка, чи можна відключити режим сну при закритті кришки ноутбука?
Відповіді:
Команда, яку ви шукаєте, - 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 )
Як показано на сторінці Technet Microsoft "Параметри командного рядка 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
програма автоматично закінчувалася через довільну кількість часу.