Мне нужно создать задачу в планировщике задач на основе изменения уровня заряда батареи
Windows не регистрирует такие детали как события. Однако вы можете использовать что-то вроде командного файла ниже и создать собственное событие.
Battery.cmd
Этот пакетный файл отслеживает текущий процент заряда батареи и создает пользовательское событие, если заряд падает ниже определенного пользователем порогового значения.
@echo off setlocal EnableDelayedExpansion rem set threshold value set _threshold=82 :start rem get the battery charge rem use findstr to strip blank lines from wmic output for /f "usebackq skip=1 tokens=1" %%i in (`wmic Path Win32_Battery Get EstimatedChargeRemaining ^| findstr /r /v "^$"`) do ( set _charge=%%i echo !_charge! if !_charge! lss !_threshold! ( echo threshold reached rem create a custom event in the application event log rem requires administrator privileges eventcreate /l APPLICATION /t WARNING /ID 999 /D "Battery charge has dropped" goto :done ) else ( rem wait for 10 minutes then try again timeout /t 600 /nobreak goto :start ) ) :done endlocal
Заметки:
- Команда
Eventcreate
работает на Windows XP до Windows 10 включительно, для работы требуются права администратора - Установить
_threshold
как требуется - Если батарея падает ниже этого значения, событие с идентификатором
999
будет сгенерировано в журнале событий ПРИЛОЖЕНИЯ с описаниемBattery charge has dropped
- Измените
eventcreate
команду в соответствии с вашей ситуацией. - Измените
timeout
задержку в соответствии с вашей ситуацией.
Пример вывода:
Моя батарея в настоящее время имеет заряд 81%. Я установил порог на 82
. Вот что происходит, когда я бегу Battery.cmd
:
> battery 81 threshold reached SUCCESS: An event of type 'WARNING' was created in the 'APPLICATION' log with 'EventCreate' as the source.
И вот новая запись в журнале событий:
синтаксис события
EVENTCREATE [/S system [/U username [/P [password]]]] /ID eventid [/L logname] [/SO srcname] /T type /D description Description: This command line tool enables an administrator to create a custom event ID and message in a specified event log. Parameter List: /S system Specifies the remote system to connect to. /U [domain\]user Specifies the user context under which the command should execute. /P [password] Specifies the password for the given user context. Prompts for input if omitted. /L logname Specifies the event log to create an event in. /T type Specifies the type of event to create. Valid types: SUCCESS, ERROR, WARNING, INFORMATION. /SO source Specifies the source to use for the event (if not specified, source will default to 'eventcreate'). A valid source can be any string and should represent the application or component that is generating the event. /ID id Specifies the event ID for the event. A valid custom message ID is in the range of 1 - 1000. /D description Specifies the description text for the new event. /? Displays this help message. Examples: EVENTCREATE /T ERROR /ID 1000 /L APPLICATION /D "My custom error event for the application log" EVENTCREATE /T ERROR /ID 999 /L APPLICATION /SO WinWord /D "Winword event 999 happened due to low diskspace" EVENTCREATE /S system /T ERROR /ID 100 /L APPLICATION /D "Custom job failed to install" EVENTCREATE /S system /U user /P password /ID 1 /T ERROR /L APPLICATION /D "User access failed due to invalid user credentials"
Дальнейшее чтение
- Индекс AZ командной строки Windows CMD - Отличный справочник по всем вопросам, связанным с командной строкой Windows.
- eventcreate - Создать пользовательское событие в средстве просмотра событий Windows.
- schtasks - Создание / редактирование запланированного задания / задачи. Задание может быть создано на локальном или удаленном компьютере.
- wmic - команда инструментария управления Windows.