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

[文本处理] 【已解决】批处理如何替换与删除文本中特定字符串?

本帖最后由 pcl_test 于 2016-7-11 10:23 编辑

文本中相同字符替换与删除,示例文件如下;a.txt是要处理的文本、b.txt是处理好的文本,谢谢大家!
a.txt
  1. sate001.txt
  2. 4
  3. 1
  4. sate002.txt
  5. 5
  6. 1
  7. sate003.txt
  8. 4
  9. 1
  10. sate004.txt
  11. 5
  12. 1
  13. sate005.txt
  14. 5
  15. 1
  16. sate006.txt
  17. 5
  18. 1
  19. sate007.txt
  20. 4
  21. 1
  22. sate008.txt
  23. 3
  24. 1
复制代码
b.txt
  1. 随机数据(矩阵)\随机批次001数据\注汇总001
  2. 4
  3. 1
  4. 随机数据(矩阵)\随机批次001数据\注汇总002
  5. 5
  6. 1
  7. 随机数据(矩阵)\随机批次001数据\注汇总003
  8. 4
  9. 1
  10. 随机数据(矩阵)\随机批次001数据\注汇总004
  11. 5
  12. 1
  13. 随机数据(矩阵)\随机批次001数据\注汇总005
  14. 5
  15. 1
  16. 随机数据(矩阵)\随机批次001数据\注汇总006
  17. 5
  18. 1
  19. 随机数据(矩阵)\随机批次001数据\注汇总007
  20. 4
  21. 1
  22. 随机数据(矩阵)\随机批次001数据\注汇总008
  23. 3
  24. 1
复制代码
替换说明;
   把a.txt文本中的所有"sate"字符替换成文字"随机数据(矩阵)\随机批次001数据\注汇总",并且把".txt"替换成空
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

谢谢两位帮了我大忙!真心谢谢两位!

TOP

  1. Dim str, fso, file, f, txt
  2. Set fso = CreateObject("Scripting.FileSystemObject")
  3. For Each file in fso.GetFolder(".").Files
  4.     If LCase(Right(file, 4)) = ".txt" Then
  5.         Set f = fso.OpenTextFile(file, 1)
  6.         txt = f.ReadAll
  7.         f.Close : Set f = Nothing
  8.         fso.OpenTextFile(file, 2).Write RegEx(txt)
  9.     End If
  10. Next
  11. Set fso = Nothing
  12. MsgBox "OK"
  13. Function RegEx(txt)
  14.     Set re = New RegExp
  15.     re.Pattern = "sate([0-9]*)\.txt"
  16.     re.Global = True
  17.     re.IgnoreCase = True
  18.     RegEx = re.Replace(txt, "随机数据(矩阵)\随机批次$1数据\注汇总$1")
  19. End Function
复制代码
这个是VBS直接替换的,$1表示分组1,也就是第一个()里面的内容,如果带其他内容([0-9]*)改成(.*)
1

评分人数

TOP

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f %%a in (a.txt) do (
  4. set str=%%a
  5. set str=!str:sate=随机数据^(矩阵^)\随机批次001数据\注汇总!
  6. set str=!str:.txt=!
  7. echo !str! >>b.txt
  8. )
复制代码
1

评分人数

TOP

返回列表