我的批处理脚本有一个非常奇怪的错误。尽管代码使用了 Android Debugging Bridge,但我确信这是与 cmd 而不是 adb 相关的错误。所以,基本上如果有人在乎,脚本只会检查 root 访问权限。这是代码的片段:
@echo off
adb kill-server
adb start-server
adb shell "su" >check.log 2>&1
adb kill-server
"%windir%\system32\find.exe" "#" check.log && goto pass || goto fail
:fail
echo No root access!
pause
:pass
echo Root access detected!
pause
输出是:
* daemon not running. starting it now on port XXXX *
* daemon started successfully *
* server not running *
---------- CHECK.LOG
goto was unexpected at this time
并且窗口自动关闭。
如果我通过手动输入命令在命令窗口中运行它,这就是我得到的:
J:\tools>adb kill-server
J:\tools>adb start-server
* daemon not running. starting it now on port XXXX *
* daemon started successfully *
J:\tools>adb shell su >check.log 2>&1
J:\tools>"%windir%\system32\find.exe" "#" check.log && echo pass || echo fail
---------- CHECK.LOG
fail
谁能想到解决方案?我试着这样做:
@echo off
adb kill-server
adb start-server
adb shell "su" >check.log 2>&1
adb kill-server
SET tr=0
"%windir%\system32\find.exe" "#" check.log >nul && SET tr=1 || SET tr=0
if "%tr%"=="1" goto pass
if "%tr%"=="0" goto fail
我仍然收到 goto 的错误。:/我很困惑,我以前用过其他这样的说法。感谢您通读!:)
哦,system32 有时不存在于路径中,因为这是供其他人使用的,所以我需要使用 %windir%\system32\