android - 如何使用findstr获取MAC地址?

标签 android windows terminal adb findstr

我发送adb shell dumpsys wifi获取当前可用的wifi ap BSSID(MAC地址)。结果如下: 最新扫描结果:

    BSSID              Frequency  RSSI    Age      SSID                                 Flags

  7c:7d:3d:c3:4c:e0       2422    -40    6.716    HUAWEI-YJDAD5                     [WPA2-PSK-CCMP][ESS]

  d4:ee:07:26:24:18       2432    -50    6.716    HiWiFi_Refine                     [WPA-PSK-CCMP][WPA2-PSK-CCMP][ESS]

  24:09:95:55:54:20       2442    -52    6.716    HUAWEI-5420                       [WPA2-PSK-CCMP][WPS][ESS]

  70:72:3c:97:52:b8       2437    -53    6.716    HUAWEI-H6FCXT                     [WPA-PSK-CCMP+TKIP][WPA2-PSK-CCMP+TKIP][WPS][ESS]

  0c:d6:bd:3d:f6:14       2417    -52    6.716    HUAWEI-DUS8FG                     [WPA-PSK-CCMP+TKIP][WPA2-PSK-CCMP+TKIP][WPS][ESS]

  f0:b4:29:20:21:1b       2442    -54    6.716    Xiaomi_211A11                     [WPA-PSK-CCMP+TKIP][WPA2-PSK-CCMP+TKIP][WPS][ESS]

  80:38:bc:05:ed:a1       2412    -58    6.716    Huawei-Employee                   [WPA2-EAP-CCMP][ESS]

  e0:19:1d:cc:7c:a4       2412    -57    6.715    HUAWEI-B83GL6                     [WPA-PSK-CCMP][WPA2-PSK-CCMP][WPS][ESS]

  18:c5:8a:17:4b:a1       2412    -60    6.715    Huawei-Employee                   [WPA2-EAP-CCMP][ESS]

那么如何在Windows上使用findstr正则表达式从结果中收集BSSID?我试过adb shell dumpsys wifi | findstr /r "[0-9a-f]{2}(:[0-9a-f]{2}){5}"但什么也没得到

最佳答案

findstr 对正则表达式的支持是有限的,不支持 Perl 解释器中正则表达式实现的所有功能,也不支持 Boost 库中的正则表达式类,也不支持 JavaScript RegExp 对象支持的功能。它们都支持 Perl 语法中的正则表达式,但它们的实现和功能有所不同。在命令提示符窗口中运行 findstr/? 以获取此控制台应用程序的显示帮助以及 findstr 支持哪些正则表达式。

但是 findstr 旨在输出包含找到的字符串的行,而不仅仅是找到的字符串。对于文件中的非正则表达式搜索仅输出找到的字符串没有多大意义,因为它等于搜索字符串,也许使用选项 /I 的情况除外以及包含字母的搜索字符串。

因此我建议使用命令FOR来将MAC地址写入文本文件。

@echo off
rem Delete a perhaps already existing output file.

if exist MacAddress.txt del MacAddress.txt

rem Run command to get WiFi data, skip the first line of output, and
rem write to output file just the first data column with the MAC addresses.

for /F "skip=1" %%I in ('adb.exe shell dumpsys wifi') do echo %%I>>MacAddress.txt

为了了解所使用的命令及其工作原理,请打开命令提示符窗口,执行以下命令,并仔细阅读每个命令显示的所有帮助页面。

  • 删除/?
  • 回显/?
  • 对于/?
  • 如果/?

另请参阅 Microsoft 文章 Using command redirection operators了解 >> 的解释。

关于android - 如何使用findstr获取MAC地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34917014/

相关文章:

mysql - Windows 10 企业版 - MYSQL 意外关闭

c - 在 iMac 上做 C 教程,遇到一个挑战

android - 通过 API 请求获取智能手机/设备位置

android - 创建自定义开关

Android BLE 4.3 onDescriptorWrite 在启用特性通知时返回状态 128

Android NDK 和 CPU 架构

windows - 大写字母 "S"在 Windows 浏览器中突然出现缩进 - 为什么?

c++ - GetLastError() 返回 0 到失败的窗口句柄

macos - OSX - 始终隐藏某些文件

windows - 捕获 Windows 终端正在运行的进程关闭