[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 【已解决】批处理怎样截取“含Audio的行中”第1个和第2个&之间的字符?

完美解决了:
  1. @echo off
  2. for /f "tokens=2 delims=&" %%a in ('findstr /i "audio" 1.txt') do @echo,%%a
  3. pause>nul 2>nul & exit
复制代码

======================================================================
::【获取声卡ID】
  1. @echo off
  2. devcon find PCI\* >PCI设备-列表.txt
  3. for /f "tokens=2 delims=&" %%a in ('findstr /i "audio" PCI设备-列表.txt') do @echo,%%a>声卡ID.txt
  4. start "" 声卡ID.txt
  5. del PCI设备-列表.txt
  6. exit
复制代码
======================================================================
::【获取网卡ID】
  1. @echo off
  2. devcon find PCI\* >PCI设备-列表.txt
  3. for /f "tokens=2 delims=&" %%a in ('findstr /i "Realtek" PCI设备-列表.txt') do @echo,%%a>网卡ID.txt
  4. start "" 网卡ID.txt
  5. del PCI设备-列表.txt
  6. exit
复制代码

=====================================================
原来的问题:
怎样截取“含Audio的行中”第1个& 和 第2个&之间的字符(下面红色的)?谢谢

=========================================
文本形如:
PCI设备(列表).txt:
PCI\VEN_8086&DEV_1C2D&SUBSYS_1C2D8086&REV_05\3&11583659&0&D0: Intel(R) 6 Series/C200 Series Chipset Family USB Enhanced Host Controller - 1C2D
PCI\VEN_8086&DEV_0152&SUBSYS_21118086&REV_09\3&11583659&0&10: (VGA )
PCI\VEN_8086&DEV_0150&SUBSYS_01508086&REV_09\3&11583659&0&00: Memory Controller
PCI\VEN_8086&DEV_1C02&SUBSYS_1C028086&REV_05\3&11583659&0&FA: Standard SATA AHCI Controller
PCI\VEN_8086&DEV_1C5C&SUBSYS_1C5C8086&REV_05\3&11583659&0&F8: LPC Controller
PCI\VEN_8086&DEV_1C10&SUBSYS_1C108086&REV_B5\3&11583659&0&E0: PCI  PCI
PCI\VEN_10EC&DEV_8168&SUBSYS_012310EC&REV_15\4&45F2A70&0&00E1: Realtek PCIe GBE Family Controller
PCI\VEN_8086&DEV_1C12&SUBSYS_1C128086&REV_B5\3&11583659&0&E1: PCI  PCI
PCI\VEN_8086&DEV_1C18&SUBSYS_1C188086&REV_B5\3&11583659&0&E4: PCI  PCI
PCI\VEN_10EC&DEV_C821&SUBSYS_C82110EC&REV_00\4&302BABE0&0&00E4:
PCI\VEN_8086&DEV_1C20&SUBSYS_1C208086&REV_05\3&11583659&0&D8: High Definition Audio Controller
PCI\VEN_8086&DEV_1C22&SUBSYS_1C228086&REV_05\3&11583659&0&FB: SM Bus Controller
PCI\VEN_8086&DEV_1C26&SUBSYS_1C268086&REV_05\3&11583659&0&E8: Intel(R) 6 Series/C200 Series Chipset Family USB Enhanced Host Controller - 1C26
13 matching device(s) found.
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2
我是小白,希望老师多多帮助

回复 5# hfxiang


    谢谢
我是小白,希望老师多多帮助

TOP

回复 1# yyz219
用第3方工具sed( http://bcn.bathome.net/tool/4.9/sed.exe )的实现方式如下:
  1. sed -r -n "/Audio/s/^[^&]+\&([^&]+)&.+$/\1/p" PCI设备(列表).txt
复制代码
1

评分人数

TOP

成功了 再次感谢
我是小白,希望老师多多帮助

TOP

回复 2# aloha20200628

我试一试先,谢谢
我是小白,希望老师多多帮助

TOP

本帖最后由 aloha20200628 于 2025-1-13 10:46 编辑

回复 1# yyz219

一楼示例文本存为 1.txt 用如下命令行的一行流即可获取所需字段...
  1. for /f "tokens=2 delims=&" %a in ('findstr /i "audio" 1.txt') do @echo,%a
复制代码
更精确匹配目标字段可改用下式
  1. for /f "tokens=2 delims=&" %a in ('findstr /ic:"High Definition Audio Controller" 1.txt') do @echo,%a
复制代码
代码放入批处脚本中须改 %a 为 %%a
1

评分人数

TOP

返回列表