找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 23136|回复: 3

[文本处理] 【已解决】如何将获取到的信息保存到变量,并可以在IF中作为判断条件?

[复制链接]
发表于 2020-3-8 11:59:33 | 显示全部楼层 |阅读模式
本帖最后由 滑两华 于 2020-5-13 18:12 编辑

请教各位大神:
想要实现的目的:
使用adb 命令,获取到了某个文件夹下面的文件列表,比如
adb shell ls /data,这个命令返回的文件列表是 aaa bbb ccc ddd

然后下一步,我想对这个返回的列表进行if 判断,如果有aaa,执行A处理流程,如果没有aaa,执行B处理流程。
BAT代码:
        adb shell ls /data | find "aaa"> result.txt
        ECHO start type result.txt
        for /f %%I in (result.txt) do (
            ECHO start
            IF %%I == "" (A) ELSE(B)
        )

但是在实际运行过程中,没有执行do。不知道哪里错误了。

或者有没有更简洁的方式,来实现读取adb shell ls /data,对这个结果进行IF的判断?

谢谢大神。
 楼主| 发表于 2020-3-8 12:40:41 | 显示全部楼层
定位了一下,上面没有执行do,是因为获取到的result.txt 为空,然后没有find aaa,所以不执行。
在data目录下面创建了aaa文件后,可以正常执行。
发表于 2020-3-8 13:26:59 | 显示全部楼层
  1. adb shell su -c 'ls /data/aaa'  | findstr "No such" 1>nul 2>nul && (
  2.         echo /data/aaa NOT EXIST,RUN B
  3. ) || (
  4.         echo /data/aaa EXIST,RUN A
  5. )
复制代码
/data文件夹好像要有root权限才能读取吧,最好加个su
 楼主| 发表于 2020-3-9 15:33:11 | 显示全部楼层
回复 3# went


    很高深。赞
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 20:36 , Processed in 0.016596 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表