Board logo

标题: [文本处理] [已解决]批处理怎样读取指定字符后面的数个字符? [打印本页]

作者: temp    时间: 2010-12-24 22:26     标题: [已解决]批处理怎样读取指定字符后面的数个字符?

查看一般网卡,获取特定字符串(&)中间的字符,用下列代码即可实现,因为要读出的在&中间的字符
  1. for /f "tokens=2 delims=&" %%a in ('devcon find pci\*^|findstr /c:"Fast Ethernet"') do (echo %%a)
复制代码
我现在要读取无线网卡中红色部分的字符,下列代码就不好使了,请帮忙!谢谢!
(隐约在本论坛好象看到有介绍读取指定字符前面几个字符的介绍,但不知读后面几个字符的写法)
  1. for /f "tokens=2 delims=&\" %%a in ('devcon find pci\*^|findstr /c:"USB Wireless"') do (echo %%a)
复制代码
USB\VID_18E8&PID_6220\5&3B797E16&0&2 : RT73 USB Wireless LAN Cardrem


HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\USB\Vid_18e8&Pid_6220\5&3b797e16&0

[ 本帖最后由 temp 于 2010-12-25 16:41 编辑 ]
作者: hanyeguxing    时间: 2010-12-24 22:36

对于内容:USB\VID_18E8&PID_6220\5&3B797E16&0&2 : RT73 USB Wireless LAN Cardrem
把 tokens=2 改成 tokens=3
  1. @echo off
  2. for /f "tokens=3 delims=&\" %%a in ('devcon find pci\*^|find /i "USB Wireless"') do echo %%a
  3. pause
复制代码

[ 本帖最后由 hanyeguxing 于 2010-12-24 22:42 编辑 ]
作者: temp    时间: 2010-12-24 22:48

原帖由 hanyeguxing 于 2010-12-24 22:36 发表
对于内容:USB\VID_18E8&PID_6220\5&3B797E16&0&2 : RT73 USB Wireless LAN Cardrem
把 tokens=2 改成 tokens=3@echo off
for /f "tokens=3 delims=&\" %%a in ('devcon find pci\*^|find /i "USB Wireless"') do  ...


谢谢!

待我明天到老爷子的笔记本上试试!
作者: temp    时间: 2010-12-24 23:17

原帖由 hanyeguxing 于 2010-12-24 22:36 发表
对于内容:USB\VID_18E8&PID_6220\5&3B797E16&0&2 : RT73 USB Wireless LAN Cardrem
把 tokens=2 改成 tokens=3@echo off
for /f "tokens=3 delims=&\" %%a in ('devcon find pci\*^|find /i "USB Wireless"') do  ...

谢谢!

中午回家测试启用\禁用无线网卡没成功,但新建1.txt文件,粘贴进引用"一"的内容后,用"批"读取正确,说明改成tokens=3正确
一:
  1. USB\VID_093A&PID_2510\5&118A2149&0&2 : USB
  2. USB\VID_18E8&PID_6220\5&3B797E16&0&2 : RT73 USB Wireless LAN Cardrem
复制代码

批:
  1. @echo off
  2. for /f "tokens=3 delims=&\" %%a in ('find /i "USB Wireless" 1.txt') do echo %%a
  3. pause
复制代码

测试不成功:
  1. :start_WiFi
  2. cls
  3. title=    启用"无线网络连接"
  4. echo  ※※※※!!!" RT73 USB Wireless LAN Card!!!※※※※
  5. rem Wireless Zero Configuration
  6. sc config WZCSVC start= demand
  7. net start WZCSVC
  8. rem 禁用"本地连接"Generic Marvell Yukon 88E8039 PCI-E Fast Ethernet Controller"
  9. for /f "tokens=2 delims=&" %%a in ('devcon find pci\*^|findstr /c:"Fast Ethernet"') do (devcon disable *%%a*>nul)
  10. netsh int ip set address "无线网络连接" static 192.168.0.122 255.255.255.0 192.168.0.1 0
  11. netsh int ip set dns "无线网络连接" static 202.102.154.3
  12. netsh int ip add dns name="无线网络连接" addr=202.102.152.3 index=2
  13. netsh int ip set wins name="无线网络连接" source=static addr=none
  14. for /f "tokens=3 delims=&\" %%a in ('devcon find pci\*^|find /i "USB Wireless"') do (devcon enable *%%a*>nul)
  15. echo 请确定您计算机上的无线开关已启用!
  16. pause>nul
  17. :stop_WiFi
  18. cls
  19. title= 禁用WiFi无线网络连接
  20. sc config WZCSVC start= disabled
  21. net stop WZCSVC
  22. for /f "tokens=2 delims=&" %%a in ('devcon find pci\*^|findstr /c:"Fast Ethernet"') do (devcon enable *%%a*>nul)
  23. netsh int ip set address "本地连接" static 192.168.1.2 255.255.255.0 192.168.1.1 0
  24. netsh int ip set dns "本地连接" static 219.146.0.130
  25. netsh int ip add dns name="本地连接" addr=219.150.32.132 index=2
  26. netsh int ip set wins name="本地连接" source=static addr=none
  27. for /f "tokens=3 delims=&\" %%a in ('devcon find pci\*^|find /i "USB Wireless"') do (devcon disable *%%a*>nul)
  28. echo 请手工关闭您计算机上的无线开关!
  29. pause>nul
复制代码

[ 本帖最后由 temp 于 2010-12-25 16:57 编辑 ]




欢迎光临 批处理之家 (http://bathome.net./) Powered by Discuz! 7.2