2016-01-21 237 views
1

我送adb shell dumpsys wifi獲得當前可用WiFi AP間BSSID(MAC地址)。結果如下: 最新的掃描結果:如何使用findstr獲取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] 

那麼如何FINDSTR則表達式中使用Windows上從結果集BSSID?我試圖adb shell dumpsys wifi | findstr /r "[0-9a-f]{2}(:[0-9a-f]{2}){5}"FINDSTR是有限的,不支持Perl解釋器的正則表達式執行,或在Boost庫正則表達式類,或者是什麼的JavaScript RegExp對象支持的所有特性得到什麼

+0

嘗試這個正則表達式:'(([[0-9A-Fa-f] {2}([:] | $)){6})' – harry

+0

@ Haralambi Todorov我試過了,但仍然沒有任何回報 –

回答

1

正則表達式的支持。它們都支持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>>解釋。