Board logo

标题: [文本处理] 【已解决】修改错误的批处理代码 [打印本页]

作者: hkldd    时间: 2015-7-2 19:14     标题: 【已解决】修改错误的批处理代码

本帖最后由 hkldd 于 2015-7-2 22:33 编辑

在文件夹中的多个批处理命令中,岀现了书写错误,不知能否用bat或vbs解决,谢谢!

替换前的文件.bat
  1. xcopy "d:\随机数据(矩阵)\随机批次001数据\注汇总001\1.txt" "d:\随机数据(矩阵)\随机批次001数据\注汇总001\"
  2. xcopy "d:\随机数据(矩阵)\随机批次001数据\注汇总001\2.txt" "d:\随机数据(矩阵)\随机批次001数据\注汇总001\"
  3. xcopy "d:\随机数据(矩阵)\随机批次001数据\注汇总001\3.txt" "d:\随机数据(矩阵)\随机批次001数据\注汇总001\"
  4. xcopy "d:\随机数据(矩阵)\随机批次001数据\注汇总001\4.txt" "d:\随机数据(矩阵)\随机批次001数据\注汇总001\"
  5. xcopy "d:\随机数据(矩阵)\随机批次001数据\注汇总002\1.txt" "d:\随机数据(矩阵)\随机批次001数据\注汇总002\"
  6. xcopy "d:\随机数据(矩阵)\随机批次001数据\注汇总002\2.txt" "d:\随机数据(矩阵)\随机批次001数据\注汇总002\"
  7. xcopy "d:\随机数据(矩阵)\随机批次001数据\注汇总002\3.txt" "d:\随机数据(矩阵)\随机批次001数据\注汇总002\"
  8. xcopy "d:\随机数据(矩阵)\随机批次001数据\注汇总002\4.txt" "d:\随机数据(矩阵)\随机批次001数据\注汇总002\"
  9. xcopy "d:\随机数据(矩阵)\随机批次001数据\注汇总002\5.txt" "d:\随机数据(矩阵)\随机批次001数据\注汇总002\"
  10. xcopy "d:\随机数据(矩阵)\随机批次001数据\注汇总003\1.txt" "d:\随机数据(矩阵)\随机批次001数据\注汇总003\"
  11. xcopy "d:\随机数据(矩阵)\随机批次001数据\注汇总003\2.txt" "d:\随机数据(矩阵)\随机批次001数据\注汇总003\"
  12. xcopy "d:\随机数据(矩阵)\随机批次001数据\注汇总003\3.txt" "d:\随机数据(矩阵)\随机批次001数据\注汇总003\"
  13. xcopy "d:\随机数据(矩阵)\随机批次001数据\注汇总003\4.txt" "d:\随机数据(矩阵)\随机批次001数据\注汇总003\"
  14. xcopy "d:\随机数据(矩阵)\随机批次001数据\注汇总004\1.txt" "d:\随机数据(矩阵)\随机批次001数据\注汇总004\"
  15. xcopy "d:\随机数据(矩阵)\随机批次001数据\注汇总004\2.txt" "d:\随机数据(矩阵)\随机批次001数据\注汇总004\"
  16. xcopy "d:\随机数据(矩阵)\随机批次001数据\注汇总004\3.txt" "d:\随机数据(矩阵)\随机批次001数据\注汇总004\"
  17. xcopy "d:\随机数据(矩阵)\随机批次001数据\注汇总004\4.txt" "d:\随机数据(矩阵)\随机批次001数据\注汇总004\"
复制代码
替换后的文件.bat
  1. xcopy "d:\随机数据(矩阵)\随机批次001数据\注汇总001\1.txt" "d:\随机数据(矩阵)\随机批次001数据\随机值001\"
  2. xcopy "d:\随机数据(矩阵)\随机批次001数据\注汇总001\2.txt" "d:\随机数据(矩阵)\随机批次001数据\随机值001\"
  3. xcopy "d:\随机数据(矩阵)\随机批次001数据\注汇总001\3.txt" "d:\随机数据(矩阵)\随机批次001数据\随机值001\"
  4. xcopy "d:\随机数据(矩阵)\随机批次001数据\注汇总001\4.txt" "d:\随机数据(矩阵)\随机批次001数据\随机值001\"
  5. xcopy "d:\随机数据(矩阵)\随机批次001数据\注汇总002\1.txt" "d:\随机数据(矩阵)\随机批次001数据\随机值002\"
  6. xcopy "d:\随机数据(矩阵)\随机批次001数据\注汇总002\2.txt" "d:\随机数据(矩阵)\随机批次001数据\随机值002\"
  7. xcopy "d:\随机数据(矩阵)\随机批次001数据\注汇总002\3.txt" "d:\随机数据(矩阵)\随机批次001数据\随机值002\"
  8. xcopy "d:\随机数据(矩阵)\随机批次001数据\注汇总002\4.txt" "d:\随机数据(矩阵)\随机批次001数据\随机值002\"
  9. xcopy "d:\随机数据(矩阵)\随机批次001数据\注汇总002\5.txt" "d:\随机数据(矩阵)\随机批次001数据\随机值002\"
  10. xcopy "d:\随机数据(矩阵)\随机批次001数据\注汇总003\1.txt" "d:\随机数据(矩阵)\随机批次001数据\随机值003\"
  11. xcopy "d:\随机数据(矩阵)\随机批次001数据\注汇总003\2.txt" "d:\随机数据(矩阵)\随机批次001数据\随机值003\"
  12. xcopy "d:\随机数据(矩阵)\随机批次001数据\注汇总003\3.txt" "d:\随机数据(矩阵)\随机批次001数据\随机值003\"
  13. xcopy "d:\随机数据(矩阵)\随机批次001数据\注汇总003\4.txt" "d:\随机数据(矩阵)\随机批次001数据\随机值003\"
  14. xcopy "d:\随机数据(矩阵)\随机批次001数据\注汇总004\1.txt" "d:\随机数据(矩阵)\随机批次001数据\随机值004\"
  15. xcopy "d:\随机数据(矩阵)\随机批次001数据\注汇总004\2.txt" "d:\随机数据(矩阵)\随机批次001数据\随机值004\"
  16. xcopy "d:\随机数据(矩阵)\随机批次001数据\注汇总004\3.txt" "d:\随机数据(矩阵)\随机批次001数据\随机值004\"
  17. xcopy "d:\随机数据(矩阵)\随机批次001数据\注汇总004\4.txt" "d:\随机数据(矩阵)\随机批次001数据\随机值004\"
复制代码
修改说明;就是把毎行未尾的  注汇总   替换成   随机值
作者: DAIC    时间: 2015-7-2 19:59

用Notepad++打开所有待修改的bat文件
Ctrl +H
替换所有打开文件
作者: xp3000    时间: 2015-7-2 20:15

本帖最后由 xp3000 于 2015-7-2 20:29 编辑

Notepad++使用方法,搜索--替换,勾选正则表达式:
\\注汇总([0-9]+)\\\"
替换值
\\随机值$1\\"

注汇总([0-9]+)\\\"$
替换值
随机值$1\\"

另外一种方法就是按住Alt,鼠标指定到需要删除的地方往下拉,把需要替换的字符全部框进去,然后右键删除,在编辑--列块编辑,插入你需要的值
作者: hkldd    时间: 2015-7-2 20:57

各位老师你们好!
   我现在的需求是这样的; 这是一个系统导出的数据文件夹,其中的批处理命令中有上述示例文件中的错误,是厂家在打补之前出现的,我们当时是用Ue进行查找替换的,后来在网上没搜到类似贴子,所以想知道,能否用bat或vbs解决这样的问题。
作者: xp3000    时间: 2015-7-2 21:25

  1. Dim str, fso, file, f, bat
  2. Set fso = CreateObject("Scripting.FileSystemObject")
  3. For Each file in fso.GetFolder(".").Files
  4.     If LCase(Right(file, 4)) = ".bat" Then
  5.         Set f = fso.OpenTextFile(file, 1)
  6.         bat = f.ReadAll
  7.         f.Close : Set f = Nothing
  8.         fso.OpenTextFile(file, 2).Write RegEx(bat)
  9.     End If
  10. Next
  11. Set fso = Nothing
  12. MsgBox "OK"
  13. Function RegEx(bat)
  14.     Set re = New RegExp
  15.     re.Pattern = "\\注汇总([0-9]+)\\"""
  16.     re.Global = True
  17.     re.IgnoreCase = True
  18.     RegEx = re.Replace(bat, "\随机值$1\""")
  19. End Function
复制代码
正则表达式那里匹配\用\\,匹配"用"",替换值那里\只用一个\表示
作者: hkldd    时间: 2015-7-2 22:31

xp3000;你好牛!谢谢你!
    要是早点来论坛求助,并且遇到你的话,要少受多少苦哟………
作者: xp3000    时间: 2015-7-3 07:43

见笑了,我也是在论坛头的一点师,处理字符串正则表达式非常好用,好像没见支持中文的命令行版,各种正则表达式的字符串替换软件倒是一大堆




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2