You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写.bat/.cmd/.vbs脚本实现文本文件正则搜索替换功能

完整可运行VBS实现
Set objFS = CreateObject("Scripting.FileSystemObject")
' 请修改为你的目标文本文件路径
strFile = "E:\imglist_2.txt"
Set objFile = objFS.OpenTextFile(strFile)
' 初始化正则匹配对象
Set objRegEx = New RegExp
objRegEx.Global = True
objRegEx.IgnoreCase = False

Do Until objFile.AtEndOfStream
    strLine = objFile.ReadLine
    ' 步骤1:删除所有双引号
    strLine = Replace(strLine, """", "")
    ' 步骤2:正则删除web字符串之前的全部内容
    objRegEx.Pattern = ".+(?=web)"
    strLine = objRegEx.Replace(strLine, "")
    ' 步骤3:替换web\前缀为完整路径
    strLine = Replace(strLine, "web\", "E:\K4_XML_Export\tpx_K4toWP_ImageMagick\web\")
    WScript.Echo strLine
Loop
使用方法

将上述代码保存为process.vbs,打开cmd窗口执行以下命令即可得到处理后的文件:

:: 生成处理后的新文件
cscript /nologo E:\process.vbs > new_imglist.txt
:: 如确认结果正确需要覆盖原文件,可执行以下命令
:: move /y new_imglist.txt E:\imglist_2.txt
实现思路
  • 直接使用Windows系统原生支持的VBS内置正则对象,无需安装额外工具,兼容性强
  • 逐行读取文本内容,按要求的顺序执行三次替换操作,固定字符串替换用原生Replace方法效率更高,需要正则匹配的场景才调用正则对象执行替换
  • 最终通过cscript的输出重定向生成新文件,避免直接修改原文件出现数据丢失的问题
注意事项
  • 运行脚本前建议先备份原文本文件,避免操作失误丢失原始内容
  • VBS字符串中"需要用两个""转义表示,路径中的\不需要额外转义,正则规则中的\才需要双写转义
  • 如果你的文本文件是无BOM的UTF-8格式,默认读取可能出现乱码,建议先将文件转存为ANSI格式,该格式对纯英文、数字、路径内容完全兼容
  • 如果需要修改匹配规则,只需要调整对应objRegEx.Pattern的正则表达式即可

内容的提问来源于stack exchange,提问作者Noel Bügler

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 14:06:00