找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 8712|回复: 5

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

[复制链接]
发表于 2025-1-13 10:09:34 | 显示全部楼层 |阅读模式
完美解决了:
  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.

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2025-1-13 10:24:15 | 显示全部楼层
本帖最后由 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技术 +1 收起 理由
yyz219 + 1 乐于助人

查看全部评分

 楼主| 发表于 2025-1-13 10:27:59 | 显示全部楼层
回复 2# aloha20200628

我试一试先,谢谢
 楼主| 发表于 2025-1-13 10:30:01 | 显示全部楼层
成功了 再次感谢
发表于 2025-1-13 10:37:19 | 显示全部楼层
回复 1# yyz219
用第3方工具sed( http://bcn.bathome.net/tool/4.9/sed.exe )的实现方式如下:

  1. sed -r -n "/Audio/s/^[^&]+\&([^&]+)&.+$/\1/p" PCI设备(列表).txt
复制代码

评分

参与人数 1技术 +1 收起 理由
yyz219 + 1 乐于助人

查看全部评分

 楼主| 发表于 2025-1-13 11:08:12 | 显示全部楼层
回复 5# hfxiang


    谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 11:49 , Processed in 0.021549 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表