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

[文本处理] [已解决]BAT或VBS怎样从这样文本按特征码提取数字作变量?

[复制链接]
发表于 2015-3-30 12:24:09 | 显示全部楼层 |阅读模式
本帖最后由 toobat 于 2015-3-31 15:35 编辑

有一组数字16347是变化的
想以这串特征码读取后面5位数字出来作变量
特征码后有些行是英文,找到那第一个匹配是数字并读取出来要怎么写??
读取成16347这样五位数

BAT,VBS都可以,求大神
发表于 2015-3-30 12:35:00 | 显示全部楼层
回复 1# toobat
这两个问题不是一样?
http://www.bathome.net/viewthread.php?tid=34829
 楼主| 发表于 2015-3-30 15:57:18 | 显示全部楼层
回复 2# pcl_test


    我发现这个文件会生成其他东西,用上次那个读取会读错,只能靠特征码才能正确读取,不知道能不能以普通文本编码获取?
发表于 2015-3-30 16:02:05 | 显示全部楼层
回复 3# toobat

发表于 2015-3-30 21:34:06 | 显示全部楼层
  1. @echo off
  2. for /f %%a in ('sed -r "s/\x00//g;s/.*LoadPerfMICROSOFT([0-9]+).*/\1/" sys.config') do (
  3.         set "var=%%a"
  4. )
  5. echo,%var%
  6. pause
复制代码
发表于 2015-3-30 21:44:30 | 显示全部楼层
vbs 好像可以这样:
  1. with CreateObject("Adodb.Stream")
  2.         .Type = 1
  3.         .Mode = 3
  4.         .Open
  5.         .LoadFromFile "sys.config"
  6.         bin = .Read(-1)
  7. End with

  8. For i = 1 to LenB(bin)
  9.         b = MidB(bin, i, 1)
  10.         If AscB(b) <> 0 Then s = s & Chr(AscB(b))
  11. Next

  12. Set re = New RegExp
  13. re.Pattern = "LoadPerfMICROSOFT(\d+)"
  14. If re.Test(s) Then var = re.Execute(s)(0).SubMatches(0)

  15. MsgBox var
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-19 12:53 , Processed in 0.018749 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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