2016-02-27 77 views
-2

我需要將wifi信號強度存儲爲變量。我知道你可以使用「netsh wlan show networks mode = bssid」,但我只需要存儲信號強度部分。有沒有辦法將這部分作爲變量進行批量存儲?如果你無法在批處理中輕鬆完成,那麼在PowerShell中有沒有辦法做到這一點?作爲變量存儲WIFI信號強度

+1

你」我忽略了在你的問題中加入一個'?'。 –

+0

感謝幫忙的人......我間接地問了一個問題。有人可以告訴我如何將WiFi信號存儲爲變量嗎? –

+0

你問的是如何在批處理文件中解析文本(命令的輸出)?簡單的findstr(或grep)將不起作用,因爲可能有多個SSID,您需要指定某個SSID。或者你想提取所有的信號作爲一個數組?另一個選擇是使用AWK解析。如果您沒有awk,請使用* for *命令的變體(請參閱幫助)循環顯示文本並解析每行。最重要的是,使用powershell而不是cmd。 – ddbug

回答

1

您可以使用這樣的事情,它允許你指定一個特定的SSID,但顯示了所有輸入時留空:

@echo off 
setlocal EnableDelayedExpansion 
set "TestSSID=" 
set /p "TestSSID=SSID: " 
echo Getting signal strengths . . . 
for /f "tokens=1,2,* delims=: " %%a in ('netsh wlan show networks mode^=bssid') do (
    if "%%a"=="SSID" set "SSID=%%c" 
    if "%%a"=="Signal" (
     set "Signal=%%b" 
     if "!TestSSID!"=="" echo !SSID!: !Signal! 
     if "!TestSSID!"=="!SSID!" echo !SSID!: !Signal! 
     ) 
    ) 
pause 
0

netsh沒有修飾符從特定的SSID獲取信息。但是,讓信息在特定接口是可能的:

for /f "tokens=2 delims=:" %%i in ('netsh wlan show networks interface^="Wireless Network Connection" mode ^= bssid ^|find "Signal"') do echo %%i