hdc_std 传输文件脚本

发布时间 2023-11-15 11:50:51作者: 名字不好起啊

项目的使用步骤中有一步是向开发板发送文件,命令比较多:

1、测试设备是否存在:hdc_std list targets

2、读写模式挂载系统分区: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 脚本即可)

发送成功后,直接执行脚本命令即可: