Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
windows批处理文件检查带电池的电源插头。PowerOnline返回始终为FALSE_Windows_Batch File_Cmd_Tablet - Fatal编程技术网

windows批处理文件检查带电池的电源插头。PowerOnline返回始终为FALSE

windows批处理文件检查带电池的电源插头。PowerOnline返回始终为FALSE,windows,batch-file,cmd,tablet,Windows,Batch File,Cmd,Tablet,当房间里的电源关闭时,我在很多Windows10平板电脑上做了关机检查。现在我试图更新一个视图dell 8.1平板电脑,但Battery.PowerOnline返回的总是false。有什么想法吗 FOR /F "tokens=* delims=" %%A IN ('WMIC /NameSpace:"\\root\WMI" Path BatteryStatus Get PowerOnline^,RemainingCapacity /Format:list ^| FIND

当房间里的电源关闭时,我在很多Windows10平板电脑上做了关机检查。现在我试图更新一个视图dell 8.1平板电脑,但Battery.PowerOnline返回的总是false。有什么想法吗

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 BatteryRuntime             Get EstimatedRuntime               /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

IF /I "%Battery.PowerOnline%"=="TRUE" (
    SET doShutDown=0
) ELSE (
    SET doShutDown=1
)

您可以设置电池。%%A这将不会设置任何内容,而且,您从未定义
%Battery.PowerOnline%
变量,因此它将永远不会返回true。我们真的需要检查每个状态吗?只有这三个命令中的最后一个
set
将保留变量值,因此请检查主poweronline值并从中执行操作。注意我是如何设置变量的:

@echo off
for /F "tokens=* delims=" %%A IN ('WMIC /NameSpace:"\\root\WMI" Path BatteryStatus Get PowerOnline /Format:list ^| FIND "PowerOnline"') DO SET "Battery=%%A" & goto :verify

:verify
if /I "%Battery%"=="PowerOnline=TRUE" (
    set doShutDown=0
) else (
    set doShutDown=1
)

您可以设置电池。%%A这将不会设置任何内容,而且,您从未定义
%Battery.PowerOnline%
变量,因此它将永远不会返回true。我们真的需要检查每个状态吗?只有这三个命令中的最后一个
set
将保留变量值,因此请检查主poweronline值并从中执行操作。注意我是如何设置变量的:

@echo off
for /F "tokens=* delims=" %%A IN ('WMIC /NameSpace:"\\root\WMI" Path BatteryStatus Get PowerOnline /Format:list ^| FIND "PowerOnline"') DO SET "Battery=%%A" & goto :verify

:verify
if /I "%Battery%"=="PowerOnline=TRUE" (
    set doShutDown=0
) else (
    set doShutDown=1
)

与您的脚本相同,平板电脑始终返回False。在for循环之后,添加
echo%Battery%
,并将打印内容准确发送给我screenPowerOnline=False,问题在于平板电脑,而不是脚本。确定后,将有2个设置。让我快速更改脚本。更改后,请立即测试。与您的脚本相同,平板电脑始终返回False。在for循环后,添加
echo%Battery%
,并向我发送打印到screenPowerOnline的内容=False,问题是平板电脑,而不是脚本。确定,因此将有两个设置。让我快速更改脚本。更改后,请立即测试它。