Проверить состояние батареи в пакетном файле? - PullRequest
1 голос
/ 22 августа 2011

Я пытаюсь найти способ проверить состояние батареи в командном файле, то есть остановить выполнение скрипта, если ноутбук работает от батареи. Я пытаюсь с помощью команды poercfg безрезультатно.

Все, что мне нужно, это что-то подобное, но в пакетном файле:

#!/bin/bash
if [ acpi -a | grep "off-line" eq 0 ]; 
   then echo "plug your laptop and run it again"
   exit 1
fi

Что я могу использовать?

Ответы [ 4 ]

2 голосов
/ 22 августа 2011

Если вы работаете в Linux, вы можете получить эту информацию из /proc:

#!/bin/bash
if grep -q discharging /proc/acpi/battery/BAT0/state; then
   echo "plug your laptop and run it again"
   exit 1
fi
0 голосов
/ 07 июня 2012

Вот так:

@echo off
wmic Path Win32_Battery Get BatteryStatus | find "2" > nul
if %errorlevel% neq 0 (
  echo Not running on AC, exiting
  exit /B
)
echo running on AC, continuing execution

Я украл wmic запрос из сценария Роба, на который ссылается Кейли

0 голосов
/ 23 августа 2011

вы можете использовать $? чтобы получить последний статус возврата grep. Я думаю, что это будет работать для вас.

#!/bin/bash
acpi -a | grep "off-line"
if [ $? -eq 0 ]; 
   then echo "plug your laptop and run it again"
   exit 1
fi
0 голосов
/ 22 августа 2011

Что-то вроде Сценарий Роба Вандервуде может работать.Как и следовало ожидать, это больше работы.Похоже, что он использует некоторую информацию WMI.

...