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

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

[复制链接]
发表于 2015-6-29 22:08:28 | 显示全部楼层 |阅读模式
本帖最后由 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"替换成空

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2015-6-30 10:45:24 | 显示全部楼层
  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技术 +1 收起 理由
Batcher + 1 乐于助人

查看全部评分

发表于 2015-7-1 17:48:58 | 显示全部楼层
  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技术 +1 收起 理由
Batcher + 1 乐于助人

查看全部评分

 楼主| 发表于 2015-7-2 18:56:43 | 显示全部楼层
谢谢两位帮了我大忙!真心谢谢两位!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-21 07:51 , Processed in 0.028845 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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