如何用C#脚本提取adb devices结果中以device结尾的设备列表?
提取ADB连接设备的标识列表(C#实现)
先执行命令获取ADB的原始输出:
string adbOutput = KAutoHelper.ADBHelper.ExecuteCMD("adb devices");
接着对输出内容做清洗和提取,得到纯设备标识列表:
// 拆分输出为单行,移除空行 var outputLines = adbOutput.Split(new[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries); // 过滤有效设备行并提取标识 List<string> deviceIds = outputLines .Where(line => line.Trim().EndsWith("device", StringComparison.OrdinalIgnoreCase) && !line.Trim().Equals("List of devices attached", StringComparison.OrdinalIgnoreCase)) .Select(line => line.Trim().Split(new[] { ' ', '\t' }, StringSplitOptions.RemoveEmptyEntries)[0]) .ToList();
关键逻辑说明
- 行拆分与清洗:用系统换行符拆分输出,同时移除空行,避免处理无效的空白内容。
- 过滤有效行:
- 保留以
device结尾的行(忽略大小写,兼容可能的输出格式差异); - 排除命令自带的
List of devices attached表头行,避免误提取。
- 保留以
- 提取设备标识:有效行的结构是「设备标识 + 空格/制表符 + device」,按空白字符拆分后取第一个元素就是设备的唯一标识。
验证与使用
你可以通过遍历deviceIds列表来输出或使用设备标识:
foreach (string id in deviceIds) { Console.WriteLine(id); }
内容的提问来源于stack exchange,提问作者vinh nguyen
相关产品推荐
相关产品推荐

