我想从android设备中提取一些.db文件进行自动化测试
打开命令提示符2。输入adb shell命令,下面是我想用java编程在命令提示符中编写的命令,
adb shell
run-as com.sk.shaft
cd files
cp file.db /sdcard/download/sample.db3
exit
exit
adb pull /sdcard/download/sample.db3 C:/users/libin/desktop/sample.db
到目前为止,我可以打开命令提示符,但我不能在命令提示符中输入上述命令。
public class DBExtract {
public static void main(String[] args) throws IOException {
Process process= Runtime.getRuntime().exec("cmd /c start cmd.exe /k ");
}
}
有人能建议一下吗?
1条答案
按热度按时间kfgdxczn1#
运行多个命令。当打开
cmd
你失去了控制。您可以创建一个批处理脚本,在新的cmd
窗口并重定向输入。您可以在
/k
的参数cmd.exe
. 在批处理文件中,可以使用来自批处理的重定向。实际上,您正在运行两个命令。
adb shell
是一个命令和adb pull
是另一个。要在来自adb的shell中执行“子命令”,请使用process.getOutputStream()
,创建OutputStreamWriter
在上面写命令。因此,为adb shell创建一个进程,将文本重定向到程序的输入,然后使用
adb pull
在另一个过程中。如果要查看命令的输出,请使用
Process#getInputStream
.程序可以如下所示: