bat批处理脚本如何获取fastboot命令结果

bookwormw 2019-08-22 10:25:46
大家好, 小弟遇到一个问题需要大家帮忙一下。 就是现在在做安卓手机fastboot自动化脚本时,发现有一些fastboot命令bat获取不到返回结果。 比如同样的结果解析语句: FOR /F %%i IN ('fastboot devices') DO @echo get result %%i 是可以获取到结果的: C:\test>test.bat get result N2SR0xxxxx finished. total time: 0.001s 可以看到,指令结果可以获取并解析:“get result xxxxxx” 但是把fastboot命令修改为其他的,如getvar kernel,bat就获取不到结果了,命令执行的返回值直接被输出到了console中: FOR /F %%i IN ('fastboot getvar kernel') DO @echo get result %%i 执行结果 C:\test>test.bat kernel: uefi finished. total time: 0.001s 可以看到,bat没有获取到这条指令的执行结果,并没有打印出“get result xxxx”,反而结果被直接输出到了cmd上。 通过添加输出流的控制,进一步发现getvar kernel的结果并不在stdout中,反而在stderr: fastboot getvar kernel 1>con 2>con 输出结果是: C:\test>test.bat kernel: uefi finished. total time: 0.000s 而fastboot getvar kernel 1>con 2>nul 输出结果是: C:\test>test.bat finished. total time: 0.000s 可以看到2控制了结果的输出。 但是如果想把结果输出到文件中,2>result.txt却获取不到任何东西 fastboot getvar kernel 1>con 2>result.txt 结果 C:\test>test.bat finished. total time: 0.000s result.txt为空。 同时又尝试了fastboot devices,是可以输出到result.txt的 fastboot getvar kernel 1>result.txt 2>nul C:\test>test.bat finished. total time: 0.000s result.tx内容: N2SR0xxxxx fastboot 所以综上,感觉fastboot getvar这类指令是从手机输出给PC的,是不是影响了bat的输出流方向,进而导致bat无法获取指令的结果? 所以想咨询一下各位高手,能否在bat中获取到这类指令的返回结果 感谢感谢!
...全文
626 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2019-08-26
  • 打赏
  • 举报
回复
用2>err.log命令行参数将stderr重定向输出到文件err.log中 用for语句判断err.log文件的内容
bookwormw 2019-08-22
  • 打赏
  • 举报
回复
找到问题了,该指令确实输出到了stderr中,但是这种情况下errorlevel仍然是0。比较特殊的输出……
bookwormw 2019-08-22
  • 打赏
  • 举报
回复
大家多帮忙!

6,849

社区成员

发帖
与我相关
我的任务
社区描述
Windows 2016/2012/2008/2003/2000/NT
社区管理员
  • Windows Server社区
  • qishine
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧