标题: [网络连接] [分享]一条批处理语句查询本机已保存的WiFi密码(三种版本) [打印本页]
作者: hfxiang 时间: 2022-8-18 15:34 标题: [分享]一条批处理语句查询本机已保存的WiFi密码(三种版本)
以下查询指令在Win10下测试通过
1个for.简单版:SSID—“无”空格等特殊字符- 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—“含”空格等特殊字符- 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.优化版- 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
复制代码
作者: yyz219 时间: 2022-8-18 20:12
收藏 感谢分享
作者: Echo11 时间: 2022-9-22 16:40
回复 1# hfxiang
我知道你是想把SSID有空格的情况处理一下,我觉得这样处理空格更简单些,可以看看。然后我没用skip,需要的可以改回skip.
如有一条记录:
所有用户配置文件 : TP-LINK 5G 1008
那其实我可以用 : 和 空格 作为分割符,然后取 tokens=1,*,取到的第2个参数就是我们要的“TP-LINK 5G 1008”
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文件双击执行的代码:- @ECHO OFF
- 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.
- pause&exit
复制代码
作者: hfxiang 时间: 2022-9-22 19:08
回复 3# Echo11
感谢大神指教。
代码优化无止境......- @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
复制代码
作者: lancer 时间: 2022-10-28 09:00
- @echo off
- title 批处理查看所有连接过的WiFi名称和密码
- echo. & echo 请用管理员权限运行此批处理,否则可能无法获取到密码
- echo.
- for /f "tokens=3*" %%i in ('netsh wlan show profiles ^| findstr "所有用户配置文件"') do (
- call :GetPass %%i %%j
- )
- pause
- goto :eof
-
- :GetPass
- echo,WiFi : %*
- setlocal enabledelayedexpansion
- for /f "delims=" %%a in ('netsh wlan show profile name^="%*" key^=clear ^| findstr "关键内容"') do (
- set var=%%a
- set var1=!var:关键内容=密码!
- set var2=!var1: =!
- set var3=!var2:^:= : !
- echo,!var3!
- )
- echo,=========================
- endlocal
- goto :eof
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |