[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[网络连接] [分享]一条批处理语句查询本机已保存的WiFi密码(三种版本)

以下查询指令在Win10下测试通过

1个for.简单版:SSID—“无”空格等特殊字符
  1. for /f "skip=10 tokens=1,2 delims=:" %a in ('netsh wlan show profiles') do@netsh wlan show profiles %b key=clear
复制代码
2个for.完整版:SSID—“含”空格等特殊字符
  1. for /f "skip=10 tokens=1,2 delims=:" %a in ('netsh wlan show profiles') do @for /f "tokens=*" %c in ("%b") do @netsh wlan show profiles "%c" key=clear
复制代码
3个for.优化版
  1. for /f "skip=10 tokens=1* delims=:" %a in ('netsh wlan show profiles') do @for /f "tokens=*" %c in ("%b") do @for /f "tokens=1* delims=:" %d in ('netsh wlan show profiles "%c" key^=clear^|findstr /r "关键内容"') do @echo;&@echo;SSID: %c 密码:%e
复制代码
1

评分人数

收藏 感谢分享
我是小白,希望老师多多帮助

TOP

回复 1# hfxiang

我知道你是想把SSID有空格的情况处理一下,我觉得这样处理空格更简单些,可以看看。然后我没用skip,需要的可以改回skip.
如有一条记录:
    所有用户配置文件 : TP-LINK 5G 1008
那其实我可以用 : 和 空格 作为分割符,然后取 tokens=1,*,取到的第2个参数就是我们要的“TP-LINK 5G 1008”
   
1、和你一样的直接在命令行窗口输入的代码:
  1. @FOR /F "eol=- tokens=1,* delims=: " %a in ('netsh wlan show profiles') do @IF "%a"=="所有用户配置文件" @FOR /F "tokens=1,* delims=: " %i in ('netsh wlan show profiles name^="%b" key^=clear ^| find "关键内容"') do @ECHO.&@ECHO.SSID:%b&@ECHO.密码:%j
复制代码
2、保存在bat文件双击执行的代码:
  1. @ECHO OFF
  2. FOR /F "eol=- tokens=1,* delims=: " %%a in ('netsh wlan show profiles') do IF "%%a"=="所有用户配置文件" FOR /F "tokens=1,* delims=: " %%i in ('netsh wlan show profiles name^="%%b" key^=clear ^| find "关键内容"') do ECHO.SSID:%%b&ECHO.密码:%%j&ECHO.
  3. pause&exit
复制代码

TOP

回复 3# Echo11


感谢大神指教。
代码优化无止境......
  1. @for /f "skip=10 tokens=1* delims=: " %a in ('netsh wlan show profiles') do @for /f "tokens=1* delims=: " %c in ('netsh wlan show profiles "%b" key^=clear^|findstr /r "关键内容"') do @echo;&@echo;SSID:%b&@echo;密码:%d
复制代码

TOP

  1. @echo off
  2. title 批处理查看所有连接过的WiFi名称和密码
  3. echo. & echo 请用管理员权限运行此批处理,否则可能无法获取到密码
  4. echo.
  5. for /f "tokens=3*" %%i in ('netsh wlan show profiles ^| findstr "所有用户配置文件"') do (
  6. call :GetPass %%i %%j
  7. )
  8. pause
  9. goto :eof
  10. :GetPass
  11. echo,WiFi : %*
  12. setlocal enabledelayedexpansion
  13. for /f "delims=" %%a in ('netsh wlan show profile name^="%*" key^=clear ^| findstr "关键内容"') do (
  14. set var=%%a
  15. set var1=!var:关键内容=密码!
  16. set var2=!var1: =!
  17. set var3=!var2:^:= : !
  18. echo,!var3!
  19. )
  20. echo,=========================
  21. endlocal
  22. goto :eof
复制代码

TOP

返回列表