netsh显示WLAN配置文件,没有其他内容

时间:2018-12-03 22:39:26

标签: batch-file cmd

因此,我想为练习起见,并且因为这是我日常生活中需要的工具,所以不要太费力。 因此,通过谷歌搜索,我设法打印出了我的ipadress,而没有通过显示以下内容显示所有其他ipconfig内容:

SARIMA.index=pd.DatetimeIndex(SARIMA.index.values, freq='D')

现在我想要类似的东西     netsh wlan显示配置文件

仅显示配置文件,没有其他内容,因此我尝试了相同的操作,所以我写了这篇文章

for /f "tokens=1-2 delims=:" %%a in ('ipconfig^|find "IPv4"') do set ip=%%b
set ip=%ip:~1%
echo Your Ipv4 Adress is: %ip%
cmd /k

但是它只是关闭了打开cmd,就像我手动打开它而不写东西一样。

如果有人可以向我解释我在哪里犯了错误,因为第一个错误起作用了,第二个错误了,我将不胜感激

1 个答案:

答案 0 :(得分:0)

由于您的代码可能会基于网络上的其他适配器而产生偏差,因此,我将向您展示获取IPv4的更好方法。这样做非常棘手,因为您必须对每个适配器进行排序。在您的示例中,它只会在ipconfig列表中捕获最后一个

要解决此问题,您可以先找到适配器,然后找到与该适配器关联的下一个ipv4。在许多情况下,您想要的ipv4将被命名为Wireless LAN adapter Wi-Fi。确保将其更改为您尊敬的网络适配器。在批处理脚本中,%adress%将是IPv4字符串。

查找IPv4脚本批处理:

@echo off
setlocal enabledelayedexpansion

set "adapter=Wireless LAN adapter Wi-Fi"
set adapterfound=false
for /f "tokens=1-2 delims=:" %%f in ('ipconfig') do (
    set "item=%%f"
    if /i "!item!"=="!adapter!" (
        set adapterfound=true
    ) else if not "!item!"=="!item:IPv4 Address=!" if "!adapterfound!"=="true" (
        set "adress=%%g"
        set adress=!adress:* =%!
        set adapterfound=false
    )
)

echo Your IPv4 Address: %adress%

pause
goto :EOF

要仅使用netsh wlan show profiles查找个人资料名称,正确的方法是将for looptokensskip一起使用。

由于netsh wlan show profiles的乞讨行始终相同,因此我们可以跳过前4行,然后使用令牌仅捕获第4个空格 之后的所有内容(在我们的示例中即网络配置文件名称)。在下面,变量%%b将是您的Wi-Fi名称。

仅捕获配置文件名称的批处理:

@echo off

Rem | Grab all profile names
for /f "tokens=4,* skip=4" %%a in ('netsh wlan show profile') do (
    echo [WIFI-NAME: %%b]
)

pause
goto :EOF

使用此方法,我们甚至可以进一步使用netsh wlan show profile "NAME" key^=clear来获取具有配置文件名称的每个密码,并提取Key Content->密码。使用一系列的for loops可以整洁有序。 REM的风箱将进一步说明该过程。

列表配置文件+密码批处理:

@echo off

Rem | Grab all profiles
for /f "tokens=4,* skip=4" %%a in ('netsh wlan show profile') do (

    Rem | Grab key for each profile
    for /f "tokens=*" %%c in ('netsh wlan show profile "%%b" key^=clear') do (

        Rem | Grab only key
        for /f "tokens=3,*" %%d in ('echo %%c^| find /i "Key Content"') do (

            Rem | Display & Record key
            echo [WIFI-NAME: %%b] [CURRENT-PASSWORD: %%e]

        )
    )
)

pause
goto :EOF

要获取有关任何命令的帮助,请执行以下操作:

  • 致电/?
  • 设置/?
  • /?
  • 如果/?
  • 等等。