如何使用findstr获取MAC地址?

时间:2016-01-21 06:43:28

标签: 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 Regular Expression从结果中收集BSSID?我试过adb shell dumpsys wifi | findstr /r "[0-9a-f]{2}(:[0-9a-f]{2}){5}"但没有得到任何东西

1 个答案:

答案 0 :(得分:1)

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

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

  • del /?
  • echo /?
  • for /?
  • if /?

有关>>的解释,请参阅Microsoft文章Using command redirection operators