Определить процент заряда батареи с помощью appleScript

applescript osx-yosemite

944 просмотра

2 ответа

153 Репутация автора

Как мне определить процент заряда батареи моего компьютера и установить его в переменную при помощи appleScript? Во всех ответах на подобные вопросы говорится об установке дополнительного программного обеспечения, но я бы хотел сделать это с использованием чисто яблочного скрипта. Это возможно? Я также попытался поиск по библиотеке appleScript безуспешно.

Автор: ALX Источник Размещён: 18.07.2016 10:51

Ответы (2)


7 плюса

1142 Репутация автора

Решение
on run
    set theBattString to (do shell script "pmset -g batt")
    -- the above will return something like...
    -- Now drawing from 'Battery Power' -InternalBattery-0  82%; discharging; 4:06 remaining
end run

Теперь вы можете анализировать, theBattStringчтобы получить необходимую информацию.

Другой вариант...

on run
    do shell script "ioreg -l | grep -i capacity | tr '\\n' ' | ' | awk '{printf(\"%.2f%%\\n\", $10/$5 * 100)}'"
    -- will output...
    -- 79.63%
end run
Автор: ThrowBackDewd Размещён: 19.07.2016 05:17

-1 плюса

1 Репутация автора

Спасибо ThrowBackDewd за его ответ.

Я сделал что-то немного странное, но это работает для меня.

Вот AppleScript

[РЕДАКТИРОВАТЬ]

Здесь более эффективный код благодаря user @ user3439894.

    set batteryPercent to word 6 of paragraph 2 of (do shell script "pmset -g batt")

if batteryPercent < 40 then

    beep

    repeat 3 times

        say "Attention " & batteryPercent & "%" & " before shut down."

        display notification "Attention " & batteryPercent & "%" & " of charge before shut down." sound name "Glass"

    end repeat

end if

простое приложение

    on idle

    set batteryPercent to word 6 of paragraph 2 of (do shell script "pmset -g batt")

    if batteryPercent < 40 then



        repeat 3 times

            beep

            say "Attention " & batteryPercent & "%" & " of charge before shut down."

            display notification "Attention " & batteryPercent & "%" & " of charge before shut down." sound name "Glass"

        end repeat

    end if

    return 60

end idle

[Первый пост]

  set theBattString to (do shell script "pmset -g batt")
-- the above will return something like...
-- Now drawing from 'Battery Power' -InternalBattery-0  82%; discharging; 4:06 remaining

set batteryLevel to splitText(theBattString, space)

--set totalItembatLvl to length of batteryLevel


set remainingTime to item 9 of batteryLevel

if remainingTime < "2:40" then
    display alert "low battery " & remainingTime & " before shut down."
    --batteryLevel & " " & remainingTime
end if


on splitText(theText, theDelimiter)
    set AppleScript's text item delimiters to theDelimiter
    set theTextItems to every text item of theText
    set AppleScript's text item delimiters to ""
    return theTextItems
end splitText
on getPositionOfItemInList(theItem, theList)
    repeat with a from 1 to count of theList
        if item a of theList is theItem then return a
    end repeat
    return 0
end getPositionOfItemInList

Вы можете добавить его в состояние ожидания и каждую минуту проверять уровень заряда батареи.

Любые предложения или исправления будут оценены.

С уважением.

Автор: BK201 Freelance Размещён: 01.01.2019 06:49
Вопросы из категории :
32x32