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

[问题求助] vbs如何提取一个文本里特定行中的指定内容并替换掉另一个文本特定行中的指定内容

本帖最后由 pcl_test 于 2016-9-19 15:53 编辑

提取指定数字再,除法算出数字再替换替换原有数字,略复杂求大神帮忙
此为文本内容
  1.       1        : 85.000000%
  2.       2        : 3.30GHz  8 cores
  3.       3         :99.493383%
  4.       4        : 7601
复制代码
首先根据特征提取出第二行GHz和cores之间的数字8(数字随机),然后用这个数字乘以 0.65(就是8乘以0.65=5.2)获得答案数值后只提取小数点前的数字5
然后在把这个5替换掉另一个文本中的2并保存文本
  1. -s  2  -g -1 -o
复制代码
替换后应为
  1. -s  5  -g -1 -o
复制代码
批处理或者vbs都行 最好是vbs 求前辈帮忙



我只能用vbs提取出文本指定数字 下面的就不行了
  1. Set FSO = CreateObject("Scripting.FileSystemObject")
  2. ss = Split(FSO.OpenTextFile("1.txt").ReadAll, "GHz")
  3. Set f2 = FSO.OpenTextFile("2.txt", 2, True)
  4. For i = 1 To UBound(ss)
  5. f2.WriteLine Trim(Split(ss(i), " cores ")(0))
  6. Next
  7. f2.Close
复制代码
1

评分人数

回复 2# pcl_test


    前辈有运算这替换部分吗

TOP

  1. Set fso = CreateObject("Scripting.FileSystemObject")
  2. Set reg = New RegExp
  3. Set f1 = fso.OpenTextFile("1.txt", 1)
  4. reg.Pattern = "GHz\s+(\d+)\s+cores"
  5. n = reg.Execute(f1.ReadAll)(0).SubMatches(0)
  6. f1.Close()
  7. Set f2 = fso.OpenTextFile("2.txt", 1)
  8. text = f2.ReadAll
  9. f2.Close()
  10. reg.Pattern = "(-s\s+)\d+(\s+-g)"
  11. msgbox reg.replace(text, "$1"&int(n*.65)&"$2")
复制代码

TOP

返回列表