尽可能使adb命令支持中文
背景
由于我为了成功给手机刷机,所以会安装不同的手机驱动。这导致我的手机并不能直接连接usb后在文件管理器中使用。只能领辟蹊径。而我在文件传输过程(手机to电脑、电脑to手机)中我用的方式有:
- usb连接,文件管理器拖拽
- 蓝牙连接(小文件、不能usb、wifi连不上等特殊场景,速度慢)
- FTP(我电脑有比较好用的软件,手机又方便开ftp服务器,速度较快)
- scp命令(不方便,主要原因是windows 和手机的用户名和ip不方便输入,手机要安装终端,速度快)
- 网络工具(微信、qq、QQ邮箱、临时存储等互联网工具)
- adb命令(我最喜欢,速度快,操作简单)
虽然adb命令传文件方便,但这是对手机路径熟悉、对各个app的存储路径有了解的情况下,才成立。
使用adb命令传文件需要手机打开调试(我一直开着)、电脑有adb环境,这时usb连接,输入adb命令就可以了。
经常使用后,会发现,adb命令对中文支持不是很友好。
解决
目标:使用adb pull
和adb push
时,能保证中文正常显示。
治标不治本方式
既然adb不支持中文,那么我们可以将中文转换为英文。
- 构建中英文对照标;
- 分别在电脑端和手机端编写程序对目标进行转换,电脑端可以写好多种,不过我觉得bat脚本比较好,手机端写shell;
- 传输后,再进行转换;
- 可以对命令进行包装,这样就少一点步骤了。
这种方式是不是很好笑。虽然挺有趣的,但感觉不太好。
有效方式
对于大佬而言,对源码进行修改编译打包就好了。但对我们而言,虽然能完成当,要耗费一些时间。
我们应该知道,我们有奇思妙想,前人也有奇思妙想;我们有困难,前人同样有困难。所以我们可以站在巨人的肩膀上。如果心理有些过不去,可以简单实现一个轮子,再去使用大佬的轮子。
安装支持中文的adb
第一步
这一步的目标是找到大佬修改好的adb。如果你在百度搜索,大概率是会找到要积分的地方(我没说是csdn)。所以你可以在github或gtiee等地方搜索。
不要告诉我,你不知道搜索内容。直接搜索“adb 中文”。
第二步
这一步的目标是下载。下载的方式多种多样,总有你会的吧。只要它能到你电脑就行了。你可以使用很多下载工具。
比如,我找的地址是这个https://github.com/Wonfee/adb,由于他没有release ,所以我使用git工具用git clone
。
按理说,此时你已经可以在此文件夹下使用了
第三步
为了方便使用,可以配置环境变量,相信你会(不会,百度)。配置好后就可以丝滑使用了。
如果你想要保留你之前的和此次下载的adb,也可以。方法如下:
-
在PATH里相对引用一个变量,不如就叫"ADB"吧。(观察现有的,你就知道怎么引用了)
-
通过改变"ADB"变量的值就可以使用不同版本的adb了。(相信你知道这个值就是adb的路径)
-
为了简化改值操作,我们可以编写脚本。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26@echo off
:: 变量延迟 虽然感觉此处不需要
setlocal ENABLEDELAYEDEXPANSION
:: 管理员权限
1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit
cd /d "%~dp0"
::换成utf-8
chcp 65001
::预设变量 可以直接制定,也可以将值存在环境变量中。我下面这样写是因为下面的if不知道为什么会失败,只要能动,我就不改了。
set adb = %ADB%
set adb_0 = "D:\Android\中文adb"
set adb_1 = %ADB_1%
::交换,会换成绝对路径,要相对引用的话,可以用%%转义一个%,不过名字要改成环境变量的名字。
if "%adb%" == "%adb_0%" (
echo 换成adb1-当前最新
SETX /M ADB %ADB_1%
) else (
echo 换成adb0-支持中文
SETX /M ADB %ADB_0%
)
rem pause -
将脚本放在合适的位置,可以配置环境变量,这样使用时,也方便,不用找文件。
怎么样,我这算是把饭喂到嘴边了吧。