Как работать с одним выводом cmd и игнорировать другой вывод - PullRequest
0 голосов
/ 30 января 2019

Попытка написать командный файл, который может извлечь один вывод из команды, которая доставляет много выводов, и передать ее переменной, чтобы я мог работать с ней.Несмотря на то, что у меня есть много проектов, для которых я хотел бы использовать эту технику, одним примером является выполнение драйверов netsh wlan show и запись в переменную только выходных данных Поддерживаемых типов радио, чтобы я мог искать различные типы и вызывать реакцию программы.соответственно.

Например, из этого вывода я хочу извлечь только поддерживаемые типы радио:

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

Я пытался использовать Google, прежде чем написать это, но не могу найти подходящий ответ.

Ответы [ 2 ]

0 голосов
/ 30 января 2019

Чтобы отфильтровать определенную строку, используйте 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%
0 голосов
/ 30 января 2019

вы можете использовать findstr, если я не ошибаюсь

netsh wlan show drivers | findstr Radio
...