Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.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
Android 如何检查Windows.bat文件中的字符串是否包含子字符串_Android_Batch File - Fatal编程技术网

Android 如何检查Windows.bat文件中的字符串是否包含子字符串

Android 如何检查Windows.bat文件中的字符串是否包含子字符串,android,batch-file,Android,Batch File,我正试图创建一个.bat脚本,通过adb(android调试桥)在android设备上安装.apk文件。到目前为止,这是我的源代码: @echo off @echo Plug in ONE VR headset and enable USB debugging on the device @echo Press any button to continue PAUSE :step0 CD /d C:\Users\alexq\AppData\Local\Android\Sdk\platform-

我正试图创建一个.bat脚本,通过adb(android调试桥)在android设备上安装.apk文件。到目前为止,这是我的源代码:

@echo off
@echo Plug in ONE VR headset and enable USB debugging on the device
@echo Press any button to continue
PAUSE

:step0
CD /d C:\Users\alexq\AppData\Local\Android\Sdk\platform-tools
adb kill-server
adb start-server
:step1
FOR /F "tokens=*" %%g IN ('adb devices') DO SET result=%%g
echo %result% | FINDSTR /I "device">nul && IF ERRORLEVEL 1 GOTO step2 ELSE GOTO step3

:step2
echo Could not find attached device or USB debugging is not enabled
echo Check USB connection of VR headset
echo Enable USB debugging on the VR headset
echo Press any button to try again
PAUSE
GOTO step1

:step3
echo found device
rem WIP more stuff will be added
PAUSE
我的问题似乎在这一行
echo%result%|FINDSTR/I“设备”>nul&&IF ERRORLEVEL 1转到步骤2 ELSE转到步骤3
echo%result%
的输出是设备准备就绪时的设备编号和单词device,这里有一个示例:
61047ce9 device
(是的,在编号和单词device之间有这些空格)

我希望脚本检查单词device是否在这个结果中,然后在找到它时转到步骤3。 我的问题是,现在脚本总是跳转到第二步,所以设备还没有准备好(我手动检查)。 有人知道我的错误在哪里吗


thx提前

根据我的意见,这里有一个答案:

@Echo关闭
CD/D“%LocalAppData%\Android\Sdk\platform tools”2>NUL | |退出/B 1
Echo插入一个VR耳机,并在设备上启用USB调试
暂停
ADB杀死服务器
ADB启动服务器
:步骤1
设置“结果=”
对于('ADB设备2^>NUL^|查找“设备”')中的/F%%A,请设置“结果=%%A”
如果定义了结果,则转到步骤3
:步骤2
Echo找不到连接的设备或USB调试未启用
回音检查VR耳机的USB连接
在VR耳机上启用Echo USB调试
暂停
转到步骤1
:步骤3
回显找到设备%result%
Rem WIP将添加更多内容
暂停

我建议将该行替换为
Echo(%result%|FindStr/I“device”>NUL&&GoTo step3
。虽然
('ADB Devices 2^>NUL^ Find/I“device“)
经过一些小的修改可能会更有效一些。例如:
设置“result=”
,然后
对于/F%%g In('ADB Devices 2^>NUL^ Find“device“)进行设置“result=%%g”
,如果定义了
结果,则转到步骤3
。这很好:)。您能解释一下2>NUL在cd命令之后做了什么吗?是的,它只是将
cd
命令导致的任何错误重定向到
NUL
设备,(有效地隐藏了它)。基本上,该行所做的是尝试使
平台工具
目录成为当前目录,如果失败,可能是因为该目录不在该位置,它会隐藏错误消息,并且因为您将无法使用
adb.exe
,它会关闭脚本。