标题: [文本处理] [已解决]BAT或VBS怎样从这样文本按特征码提取数字作变量? [打印本页]
作者: toobat 时间: 2015-3-30 12:24 标题: [已解决]BAT或VBS怎样从这样文本按特征码提取数字作变量?
本帖最后由 toobat 于 2015-3-31 15:35 编辑
有一组数字16347是变化的
想以这串特征码读取后面5位数字出来作变量
特征码后有些行是英文,找到那第一个匹配是数字并读取出来要怎么写??
读取成16347这样五位数
BAT,VBS都可以,求大神
作者: pcl_test 时间: 2015-3-30 12:35
回复 1# toobat
这两个问题不是一样?
http://www.bathome.net/viewthread.php?tid=34829
作者: toobat 时间: 2015-3-30 15:57
回复 2# pcl_test
我发现这个文件会生成其他东西,用上次那个读取会读错,只能靠特征码才能正确读取,不知道能不能以普通文本编码获取?
作者: pcl_test 时间: 2015-3-30 16:02
回复 3# toobat
[attach]8486[/attach]
作者: apang 时间: 2015-3-30 21:34
- @echo off
- for /f %%a in ('sed -r "s/\x00//g;s/.*LoadPerfMICROSOFT([0-9]+).*/\1/" sys.config') do (
- set "var=%%a"
- )
- echo,%var%
- pause
复制代码
作者: apang 时间: 2015-3-30 21:44
vbs 好像可以这样:- with CreateObject("Adodb.Stream")
- .Type = 1
- .Mode = 3
- .Open
- .LoadFromFile "sys.config"
- bin = .Read(-1)
- End with
-
- For i = 1 to LenB(bin)
- b = MidB(bin, i, 1)
- If AscB(b) <> 0 Then s = s & Chr(AscB(b))
- Next
-
- Set re = New RegExp
- re.Pattern = "LoadPerfMICROSOFT(\d+)"
- If re.Test(s) Then var = re.Execute(s)(0).SubMatches(0)
-
- MsgBox var
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |