0

我使用 adb shell 命令检查我的设备的屏幕是否打开

adb shell dumpsys power | find "mWakefulness="

如果屏幕关闭此命令返回mWakefulness=Asleep

我想要做的是将该命令的输出分配给一个变量并通过 if 语句运行它以检查是否mWakefulness=Asleep

我试过这个

@echo off
for /f "delims=" %%a in ('adb shell dumpsys power | find "mWakefulness="') do (
    Set "Output=%%a"
)
Echo Output Result = "%OutPut%"

但这会返回| was unexpected at this time.

所以我试着adb shell dumpsys power | find "mWakefulness="用双引号括起来

@echo off
for /f "delims=" %%a in ('"adb shell dumpsys power | find "mWakefulness=""') do (
    Set "Output=%%a"
)
Echo Output Result = "%OutPut%"

但这会返回Output Result = ""

谁能帮忙?

4

1 回答 1

1

|在您的原始代码中,您需要通过在它前面加上一个插入符号 ( ^)来“转义”它。

这告诉批处理管道是要执行的命令的一部分,而不是FOR语句的一部分

于 2020-10-25T20:43:24.740 回答