尝试编写一个批处理文件,该文件可以从提供多个输出的命令中提取单个输出,并将其传递给一个变量,以便我可以使用它。虽然我有许多项目我想使用这种技术,一个例子是执行netsh wlan显示驱动程序,并只将支持的无线电类型输出写到一个变量中,以便我可以搜索各种类型并使程序做出相应的响应。
例如,从下面的输出中,我只想提取支持的无线电类型:
C:\Users\brent>netsh wlan show drivers
Interface name: Wi-Fi
Driver : Realtek 8821AE Wireless LAN 802.11ac PCI-E NIC
Vendor : Realtek Semiconductor Corp.
Provider : Realtek Semiconductor Corp.
Date : 5/18/2017
Version : 2023.55.415.2017
INF file : oem7.inf
Type : Native Wi-Fi Driver
Radio types supported : 802.11n 802.11g 802.11b 802.11ac 802.11n 802.11a
FIPS 140-2 mode supported : Yes
802.11w Management Frame Protection supported : Yes
Hosted network supported : No
Authentication and cipher supported in infrastructure mode:
Open None
WPA2-Personal CCMP
Open WEP-40bit
Open WEP-104bit
Open WEP
WPA-Enterprise TKIP
WPA-Personal TKIP
WPA2-Enterprise TKIP
WPA2-Personal TKIP
WPA-Enterprise CCMP
WPA-Personal CCMP
WPA2-Enterprise CCMP
Vendor defined TKIP
Vendor defined CCMP
Vendor defined Vendor defined
Vendor defined Vendor defined
WPA2-Enterprise Vendor defined
WPA2-Enterprise Vendor defined
Vendor defined Vendor defined
Vendor defined Vendor defined
IHV service present : Yes
IHV adapter OUI : [00 e0 4c], type: [00]
IHV extensibility DLL path: C:\WINDOWS\system32\Rtlihvs.dll
IHV UI extensibility ClSID: {6c2a8cca-b2a2-4d81-a3b2-4e15f445c312}
IHV diagnostics CLSID : {00000000-0000-0000-0000-000000000000}
Wireless Display Supported: No (Graphics Driver: No, Wi-Fi Driver: Yes)类似这样的代码,尽管这显然是有缺陷的代码:
Set FOO=netsh wlan show drivers{Radio Types Supported}
echo %FOO%
::Desired Output
802.11n 802.11g 802.11b 802.11ac 802.11n 802.11a在写这篇文章之前,我尝试了一些谷歌的调查,但我似乎找不到一个合适的答案。
发布于 2019-01-30 17:25:11
如果我没记错的话,您可以使用findstr
netsh wlan show drivers | findstr Radio发布于 2019-01-30 17:37:12
要过滤特定行,请使用find或findstr
netsh wlan show drivers |find "Radio types supported"要将命令的输出传递给变量,请使用for /f循环:
for /f "tokens=2 delims=:" %%a in ('netsh wlan show drivers ^|find "Radio types supported"') do set "rtypes=%%a"
echo %rtypes%https://stackoverflow.com/questions/54437134
复制相似问题