标题: [文本处理] [已解决]BAT如何批量提取命令输出结果作为变量并汇总显示指定行 [打印本页]
作者: thp2008 时间: 2020-10-6 16:54 标题: [已解决]BAT如何批量提取命令输出结果作为变量并汇总显示指定行
本帖最后由 thp2008 于 2020-10-7 14:19 编辑
求助各位批处理大神
当我在Windows 10命令行下运行如下命令:
netsh wlan show profile
得到的结果如下:
接口 WLAN 上的配置文件:
组策略配置文件(只读)
---------------------------------
<无>
用户配置文件
-------------
所有用户配置文件 : 1320-1325_5G
所有用户配置文件 : Xiaomi_6679_9AC7_5G
所有用户配置文件 : 1320-1325
所有用户配置文件 : CMCC-10086
所有用户配置文件 : CMCC-UNYS
所有用户配置文件 : Wifi6_5G
所有用户配置文件 : Super5G
所有用户配置文件 : Super_500M
所有用户配置文件 : Samsung
所有用户配置文件 : Wifi6
所有用户配置文件 : 中国电信
所有用户配置文件 : DIRECT-FEZ0:ILCE-7RM4
问题1.请问我如何自动,将输出结果中的“所有用户配置文件 : ”后面的部分,自动作为变量,这个需要如何处理?
我是想将上述变量,用在下列命令中
netsh wlan show profiles "上述变量"
示例:netsh wlan show profiles "Super_500M"
输出结果如下:
C:\>netsh wlan show profiles "Super_500M"
接口 WLAN 上的配置文件 Super_500M:
=======================================================================
已应用: 所有用户配置文件
配置文件信息
-------------------
版本 : 1
类型 : 无线局域网
名称 : Super_500M
控制选项 :
连接模式 : 手动连接
网络广播 : 只在网络广播时连接
AutoSwitch : 请勿切换到其他网络
MAC 随机化: 禁用
连接设置
---------------------
SSID 数目 : 1
SSID 名称 :“Super_500M”
网络类型 : 结构
无线电类型 : [ 任何无线电类型 ]
供应商扩展名 : 不存在
安全设置
-----------------
身份验证 : WPA2 - 个人
密码 : CCMP
身份验证 : WPA2 - 个人
密码 : GCMP
安全密钥 : 存在
费用设置
-------------
费用 : 无限制
阻塞 : 否
接近数据限制 : 否
过量数据限制 : 否
漫游 : 否
费用来源 : 默认
C:\>
问题2. 我想把这个示例输出的结果中,批量提取输出结果中的三行,显示结果样式如下:
1、 SSID 名称 :“Super_500M”
身份验证 : WPA2 - 个人
安全密钥 : 存在
2、SSID 名称 :“1320-1325_5G”
身份验证 : WPA2 - 个人
安全密钥 : 存在
3、SSID 名称 :“Xiaomi_6679_9AC7_5G”
身份验证 : WPA2 - 个人
安全密钥 : 存在
4、SSID 名称 :“中国电信”
身份验证 : WPA2 - 个人
安全密钥 : 存在
5、SSID 名称 :“DIRECT-FEZ0:ILCE-7RM4”
身份验证 : WPA2 - 个人
安全密钥 : 不存在
.................
应该如何编写。
其实,概括来说,就是我想写个批处理,将“netsh wlan show profile”输出的结果,作为变量,自动带到 netsh wlan show profiles "上述变量" 这条命令中来。
然后,在每条 netsh wlan show profiles "上述变量" 命令输出的结果中提取我需要的三行,最后汇总,排列,输出这三行结果的,一个批处理。
谢谢各位大神!
作者: Batcher 时间: 2020-10-6 23:28
回复 1# thp2008
请参考Q-04把bat文件保存为ANSI编码:
https://mp.weixin.qq.com/s/6lbb97qUOs1sTyKJfN0ZEQ- @echo off
- setlocal enabledelayedexpansion
- for /f "tokens=2 delims=:" %%i in ('netsh wlan show profile ^| findstr "所有用户配置文件"') do (
- set "ProfileName=%%i"
- netsh wlan show profiles "!ProfileName:~1!" | findstr /i /c:"SSID 名称" /c:"身份验证" /c:"安全密钥"
- )
复制代码
作者: thp2008 时间: 2020-10-7 14:19
回复 thp2008
请参考Q-04把bat文件保存为ANSI编码:
Batcher 发表于 2020-10-6 23:28
感谢大神出手相助,完全满足要求,我稍做修改,明白怎么处理这种情况了,非常感谢!
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |