gpt4 book ai didi

windows - 用于检查电池状态变量并在 if 语句中使用它的脚本,是否有任何脚本可以使 .bat 文件每分钟作为隐藏进程运行

转载 作者:可可西里 更新时间:2023-11-01 11:27:23 24 4
gpt4 key购买 nike

目前,我正在尝试创建一个脚本文件,如果它检测到笔记本电脑正在使用电池而不是交流电运行,它将启动其他程序。

前提是我使用的是 Windows 8.1。

我创建了一个 .bat 文件并输入了以下脚本:

@ECHO OFF
REM To Check the battery status, providing that 2 is connected to the AC
WMIC Path Win32_Battery Get BatteryStatus
REM Check the content of battery status variable
IF NOT "%BatteryStatus%"=="2"(
echo laptop started to use its battery )

当我运行上面的批处理文件时,它好像没有检测到 BatteryStatus 变量的内容。

谁能指导我找到将电池状态输出到电池状态变量的最佳方法?

另一件事,我需要一个脚本来让这个 bat 运行并每分钟检查一次电池,我该如何实现?

我尝试使用任务调度程序来完成,但问题是最大重现时间为 5 分钟。

有什么想法吗?

提前致谢!

最佳答案

好的,这就是我在 comment above 中的意思:

@ECHO OFF
:LOOP
REM To Check the battery status, providing that 2 is connected to the AC
FOR /F "skip=1 tokens=1" %%A IN ('WMIC Path Win32_Battery Get BatteryStatus 2^>^&1') DO SET BatteryStatus=%%A
SET /A BatteryStatus+=0
REM Check the content of battery status variable
IF %BatteryStatus% EQU 2 (
ECHO laptop is running on AC power
) ELSE IF %BatteryStatus% GEQ 1 (
ECHO laptop started to use its battery
) ELSE ECHO unknown battery status
TIMEOUT /T 60 /NOBREAK > nul
GOTO :LOOP

这也具有此 comment 提到的循环.

我将 2>&1 部分添加到 WMIC 命令以重定向潜在的错误消息,因为它可能会返回类似 No Instance(s) Available 的消息。 。紧随其后的附加 SET/A 命令可确保变量 %BatteryStatus% 永远不会为空,即使出现上述错误也是如此。有额外的检查来区分电池运行、交流电源运行和未知状态运行(前者 IF NOT "%BatteryStatus%"=="2" 可能会在出错时产生误导).

关于windows - 用于检查电池状态变量并在 if 语句中使用它的脚本,是否有任何脚本可以使 .bat 文件每分钟作为隐藏进程运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31688409/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com