Android 将adb输出分配给批处理脚本中的变量

Android 将adb输出分配给批处理脚本中的变量,android,batch-file,cmd,adb,adb-shell,Android,Batch File,Cmd,Adb,Adb Shell,我正在使用adb shell命令检查我的设备屏幕是否打开 adb shell dumpsys power | find "mWakefulness=" 如果屏幕关闭,此命令返回mwakefully=sleep 我要做的是将该命令的输出分配给一个变量,并通过if语句运行它,以检查mwakefully=sleep 我试过这个 @echo off for /f "delims=" %%a in ('adb shell dumpsys power | find

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

adb shell dumpsys power | find "mWakefulness="
如果屏幕关闭,此命令返回
mwakefully=sleep

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

我试过这个

@echo off
for /f "delims=" %%a in ('adb shell dumpsys power | find "mWakefulness="') do (
    Set "Output=%%a"
)
Echo Output Result = "%OutPut%"
但这在当时是出乎意料的。

因此,我试图用双引号将adb shell dumpsys power |查找“mwakefully=“”括起来

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


有人能帮忙吗?

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


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

这是否回答了您的问题?在附加的双引号中,
=
-符号对于解析器来说是不带引号的,因此您需要像
^=
一样对其进行转义…