原理:
大概是第一次for循环去读取wifi名称
第二次循环的目的是去除第一次循环获取的多余的一个空格(感觉写的不好。。。又不知道咋截取,干脆用循环去分割吧,如果有更好的写法欢迎在回复里提出。)
第三次是获取对应wifi名字的信息,然后用findstr去找关键内容那一行,如果找到了就分割一下(老分割了。。。)写出密码
没有密码就拉倒。。。
绿色无残留,安全无捆绑
无须管理员权限运行(似乎是的)
无须额外配置,一键获取全部以保存的wifi名及其密码
第一版:
[Bash shell] 纯文本查看 复制代码 @echo off
color 2f
mode con: cols=40 lines=15
title WiFi密码查询
echo 正在查询结果
for /f "tokens=2* delims=:" %%i in ('netsh wlan show profiles') do (
for /f "tokens=* delims= " %%a in ("%%i") do (
for /f "tokens=3* delims= " %%d in ('netsh wlan show profiles key^=clear name^="%%a"^| findstr "关键内容" ') do (
echo "%%a"密码为:【%%d】
)
)
)
echo 任意键退出查询
pause>nul
第二版:
- 新增了输出文件到文本(其实bat输出后鼠标拖拽选择然后点击右键就可以复制了。。。)
- 修改了去除空白的模式,代码更简洁
[Bash shell] 纯文本查看 复制代码 @echo off
color 2f
mode con: cols=40 lines=15
title WiFi密码查询
echo 正在查询结果
setlocal enabledelayedexpansion
for /f "tokens=2* delims=:" %%i in ('netsh wlan show profiles') do (
set str=%%i
for /f "tokens=3* delims= " %%d in ('netsh wlan show profiles key^=clear name^="!str:~1!"^| findstr "关键内容"') do (
echo "!str:~1!"密码为:【%%d】
echo "!str:~1!"密码为:【%%d】>>WiFi.txt
)
)
echo 保存在脚本所在目录的WiFi.txt文件中
echo 任意键退出查询
pause>nul
|