找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 24079|回复: 4

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

[复制链接]
发表于 2022-8-18 15:34:31 | 显示全部楼层 |阅读模式
以下查询指令在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技术 +1 收起 理由
yyz219 + 1 感谢分享

查看全部评分

发表于 2022-8-18 20:12:38 | 显示全部楼层
收藏 感谢分享
发表于 2022-9-22 16:40:50 | 显示全部楼层
回复 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
复制代码
 楼主| 发表于 2022-9-22 19:08:42 | 显示全部楼层
回复 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
复制代码
发表于 2022-10-28 09:00:20 | 显示全部楼层
  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
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 04:10 , Processed in 0.020154 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表