Могу ли я создать задачу в планировщике задач, которая запускается при достижении определенного уровня заряда батареи на простаивающем компьютере, чтобы перейти в спящий режим? Windows действительно дает возможность заставить компьютер переходить в спящий режим при определенном уровне заряда батареи, но ему все равно, если ноутбук простаивает или нет.
1 ответ
Я понял!
Я сделал запланированное задание, которое запускается, когда компьютер простаивает, и многократно запускает пакетный файл, который проверяет, разряжается ли батарея и сколько процентов она несет.
Если батарея разряжается (т. Е. Ноутбук не подключен к электросети), и батарея заряжена на 25% или менее, это немедленно переведет компьютер в спящий режим (или в спящий режим, если он уже включен).
Задача повторяется (т.е. запускает пакетный файл) каждые 5 минут до бесконечности. Также убедитесь, что вы установили следующие условия:
Я основал свой пакетный скрипт на battstat.bat
отсюда: http://www.robvanderwoude.com/wmiexamples.php
Вы найдете мой сценарий ниже.
@ECHO OFF
:: Localize variables
SETLOCAL
:: Use WMI to retrieve battery status information
FOR /F "tokens=* delims=" %%A IN ('WMIC /NameSpace:"\\root\WMI" Path BatteryStatus Get PowerOnline^,RemainingCapacity /Format:list ^| FIND "="') DO SET Battery.%%A
FOR /F "tokens=* delims=" %%A IN ('WMIC /NameSpace:"\\root\WMI" Path BatteryFullChargedCapacity Get FullChargedCapacity /Format:list ^| FIND "="') DO SET Battery.%%A
:: Calculate runtime left and capacity
SET /A Battery.RemainingCapacity = ( %Battery.RemainingCapacity%00 + %Battery.FullChargedCapacity% / 2 ) / %Battery.FullChargedCapacity%
:: Display results
IF /I "%Battery.PowerOnline%"=="FALSE" (
IF %Battery.RemainingCapacity% LEQ 25 (
Rundll32.exe Powrprof.dll,SetSuspendState Sleep
)
)
GOTO:EOF
:: End localization
IF "%OS%"=="Windows_NT" ENDLOCAL