2016-02-27 66 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