如何保存CMD中ADB命令返回的警告信息?
问题原因与解决方法
原因解析
在Shell环境里,命令输出分两类通道:
- 标准输出(stdout):像
Starting: Intent { act=android.settings.AIRPLANE_MODE_SETTINGS }这种正常执行反馈,默认输出到终端,你用的>符号只会捕获这部分内容写入文件。 - 标准错误(stderr):警告、错误这类提示(比如那条
Warning: Activity not started, intent has been delivered to currently running top-most instance),默认也显示在终端,但不属于标准输出通道,所以不会被>的重定向操作写入result.txt。
解决方法
方法1:合并标准输出与错误到同一文件
用2>&1参数把标准错误(文件描述符为2)的内容合并到标准输出(文件描述符为1),再一起写入文件。修改后的命令:
adb shell am start -a android.settings.AIRPLANE_MODE_SETTINGS > result.txt 2>&1
方法2:分开保存正常输出与警告
如果需要分别存储两类信息,可以把标准错误单独定向到另一个文件:
adb shell am start -a android.settings.AIRPLANE_MODE_SETTINGS > result.txt 2> warning.txt
执行后,result.txt存正常启动信息,warning.txt存警告内容。
内容的提问来源于stack exchange,提问作者Game Replay
相关产品推荐
相关产品推荐

