美文网首页
[原创] does not existte object '/

[原创] does not existte object '/

作者: RedB | 来源:发表于2022-03-02 16:53 被阅读0次

最近在写使用adb命令提取运行中APK的批处理bat,遇到了奇怪的错误,does not existte object '/data/app/com.hzhsj.chemistrytool-1/base.apk


先说解决办法:
在adb命令结尾加| xargs echo -n,它的作用是删除字符串结尾的换行符

问题复盘

原始批处理如下:

for /f %%p in ('adb shell "dumpsys activity | grep Resume |  tr -s ' ' | cut -d ' ' -f 5 | cut -d / -f 1 | head -n 1"') do (
    for /f "tokens=2 delims=:" %%i in ('adb shell "pm path %%p"') do (
        adb pull %%i %%p.apk
    )
)

为了找到问题所在,

  1. 首先我在adb pull前面加上了echo %%iecho %%p,确认了这两个变量的值都是符合预期的(这里称之为字符串I和P)
  2. 接下来我在脚本中,把%%i%%p同时各自替换为硬编码的字符串I和P,也可以正确执行;
    那就奇怪了,变量的值对,但是用变量不行,用写死的值就行。此时我想起来,这个脚本执行的时候,格式错乱,会不会与此有关呢?(见图中红框部分,部分本来在末尾的字符跑到了开头覆盖了开始的字符

    后来想到可能是回车符之类的的问题,就去stackoverflow找到了xargs echo -n(虽然这个是用来清除换行符的),果然好使了。
    正确代码在:https://www.jianshu.com/p/6a99d10e2ce0

相关文章

网友评论

      本文标题:[原创] does not existte object '/

      本文链接:https://www.haomeiwen.com/subject/gozsrrtx.html