批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程
[批处理文件精品]批处理版照片整理器[批处理文件精品]纯批处理备份&还原驱动在线第三方下载
返回列表 发帖

[网络连接] [分享]一条批处理语句查询本机已保存的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

返回列表