hdc_std 传输文件脚本
项目的使用步骤中有一步是向开发板发送文件,命令比较多:
1、测试设备是否存在:hdc_std list targets
2、使得data分区可写:hdc_std target mount
3、授予 hdc 后台进程 root 权限:hdc_std smode
4、执行发送文件:hdc_std file send [电脑端文件路径] [开发板目标文件路径]
5、进入命令交互界面:hdc_std shell
6、然后 cd 到目标文件:cd [开发板目标文件路径]
7、将文件解压使用:tar zxvf *.tar.gz
每次调试都要输入后几项命令,太繁琐,想到了用脚本整合一下,只需执行一个文件,即可实现文件的发送解压~
1、刚开始的几条命令比较执行,直接 bat 文件写即可:
2、接下来是 发送文件,也是可以用 bat 执行的:
(这里还有另一个思路,直接发 shell 脚本过去,执行解压即可)
3、接下来就不是平时常用的命令了,调用 shell 交互界面,执行 shell 命令:
最开始不知道怎么用 bat 命令写这种交互界面的命令,直到我在搜索 【hdc_std shell】 命令的时候,发现有很多命令都是直接跟着 【hdc_std shell】 的:
https://ost.51cto.com/posts/18548
于是我尝试了一下,直接接 shell 命令也是可以执行的,但 cd 命令倒是不好使:
我就打算直接解压对应目录下的 tar 包,结果他提示我:
tar: can't remove: Device.json: Read-only file system(之前的命令已经设置了读写权限,不知道为什么没有生效,而且我也检查了对应目录下并没有解压出来的文件)
后来又仔细看了下命令,找到了读写权限的指令,加上:
https://www.seaxiang.com/blog/5118b94734a5466683fc2110f2cb3e25
bat 命令:
再次执行解压,这次解压成功了,但是对应目录下还是没有文件(之前报错说系统只读,说明tar 解压命令已经成功了,要覆盖之前的同名文件,因为只读才失败,所以说明解压的位置有问题)
又去根目录查看了一下,还真的是在根目录下解压的:
查了下 tar 命令,怎么解压到目标位置:
https://www.jb51.net/article/275295.htm
修改下 bat 命令,追加 -c 指定文件夹
ok 搞定:
至此文件传输执行 一个 bat 文件,就可以发送到指定的开发板目录下了~
PS:
另一种思路,发送 .sh shell 脚本,再运行该 shell 脚本执行命令也是可行的(发送 tar 时,一起再多发送一个 .sh 脚本即可)
发送成功后,直接执行脚本命令即可: