我发送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
为了了解所使用的命令及其工作方式,请打开命令提示符窗口,在其中执行以下命令,并非常仔细地阅读每个命令显示的所有帮助页面。
del /?
echo /?
for /?
if /?
另请参阅Microsoft文章Using command redirection operators,以获取
>>
的说明。关于android - 如何使用findstr获取MAC地址?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34917014/