当有多个设备online时,命令行窗口通过adb连接指定设备方法----adb -s <serial number> cmd

本文介绍了如何使用adb devices命令获取在线设备的serialnumber,并通过adb-s<serialnumber>cmd向设备发送adb命令,实现远程操作设备的功能。包括运行命令shell、下载应用数据库等操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转:http://blog.youkuaiyun.com/duanyipeng/article/details/7183954


1. 通过adb devices命令获取所有online设备的serial number。

C:\Users\Administrator>adb devices

List of devices attached
emulator-5554   device
SH0A6PL00243    device

上面表示,当前有两个设备online,第一个emulator-5554是模拟器,后一个是真机SH0A6PL00243。


2. 通过adb -s <serial number> cmd向设备发送adb命令。

比如:运行命令shell。

C:\Users\Administrator>adb -s SH0A6PL00243 shell
#

比如:down一个应用的数据库到本地f:\test目录下面。

C:\Users\Administrator>adb -s SH0A6PL00243 pull data/data/com.android.tencent/databases/AgendaDetails.db f:\test
555 KB/s (5120 bytes in 0.009s)

C:\Users\Administrator>

运行其它命令和运行pull命令一样的,只是在adb和cmd之间需要额外添加-s <serial number>即可。


手机端B站缓存的视频批量重命名通常涉及到访问安卓设备的文件系统,并执行相应的文件操作。由于直接在手机应用内部进行这样的操作较为复杂,因此我们可以通过连接电脑的方式来简化这一过程。以下是基于Windows系统的详细步骤说明: ### 准备工作 1. **确保已启用USB调试模式**:进入手机设置 -> 关于手机,连续点击“版本号”七次直到提示成为开发者;然后返回到设置主界面找到开发者选项并开启USB调试功能。 2. **安装ADB工具**:下载[Android SDK Platform Tools](https://developer.android.com/studio/releases/platform-tools),解压缩至任意目录(例如D:\adb_tools),将该路径加入环境变量PATH以便命令行可以直接调用adb命令。 3. **连接手机与PC并通过ADB授权**: - 使用USB线缆把手机连接到计算机; - 打开CMD窗口输入`adb devices`查看是否有设备列出,如果有则表示连接正常; - 授权弹框出现在手机屏幕上选择允许使用此电脑。 4. **确定缓存文件夹位置**:对于大多数用户来说,默认地址应该是 `/storage/emulated/0/Android/data/tv.danmaku.bili/download` 或者类似结构的形式存在。 --- ### 实现批量重命名 接下来我们将编写一段Python程序来辅助完成这项任务。首先创建一个新的文本编辑器文档保存为rename_videos.py: ```python import os from subprocess import check_output def get_device_info(): try: output = check_output(['adb', 'devices']).decode().strip() device_list = [] lines = output.split('\n')[1:] # 跳过表头信息 for line in lines: parts = line.strip().split("\t") if len(parts) == 2 and "device" in parts[1]: device_list.append(parts[0]) return device_list except Exception as e: print("Error fetching connected devices:", str(e)) exit(-1) if __name__ == "__main__": devices = get_device_info() if not devices: print('No Android device found.') quit() elif len(devices) > 1: selected_device = input(f'Multiple devices detected ({", ".join(devices)}). Please select one by entering its serial number:') if selected_device not in devices: print('Invalid selection') quit() else: selected_device = devices[0] folder_path_on_phone = "/storage/emulated/0/Android/data/tv.danmaku.bili/download" cmd_prefix = ["adb", "-s", selected_device] # 列出所有文件名 list_cmd = [*cmd_prefix, "shell", f'ls "{folder_path_on_phone}"'] files_str = check_output(list_cmd).decode().strip() file_names = [fn for fn in files_str.split() if '.' in fn] # 过滤掉可能是文件夹的东西 new_filenames = [] # 存储新的文件名列表 while True: user_input = input("请输入一系列新名字(空格分隔), 输入完成后按Enter键结束:") names = user_input.split() if all([len(n)>0 for n in names]): break else: continue # 将输入的名字分配给每一个文件 min_length = min(len(file_names), len(names)) renamed_pairs = zip(file_names[:min_length], names[:min_length]) confirmation_message = "\n".join( [f"{old} => {new}{os.path.splitext(old)[-1]}" for (old, new) in renamed_pairs] ) print("即将执行如下重命名操作:\n"+confirmation_message+"\n确认吗?y/n") confirm = input() if confirm.lower() != 'y': print("取消了操作。") quit() success_count = failure_count = 0 for old_name, new_base in renamed_pairs: ext = os.path.splitext(old_name)[1] full_old_path = f'{folder_path_on_phone}/{old_name}' full_new_path = f'{folder_path_on_phone}/{new_base}{ext}' rename_cmd = [*cmd_prefix, "shell", f'mv "{full_old_path}" "{full_new_path}"'] try: result = check_output(rename_cmd) print(result.decode()) success_count += 1 except Exception as err: print(err) failure_count += 1 print(f"\n已完成{success_count + failure_count}个项目中的{success_count}个成功的重命名操作。\n失败次数:{failure_count}") ``` 注意上述脚本假定了你已经正确设置了ADB并且能够顺利运行命令,同也做了简单的边界情况处理如多台设备连接的情况下让用户手动选择一台作为目标等。 当一切准备就绪后就可以按照下面的方式启动它啦! 打开终端或命令提示符,切换到存放rename_videos.py的地方,最后敲下这句魔法般的指令即可开始我们的旅程:`python rename_videos.py` 希望这个解决方案对你有所帮助~
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值