【运维基础知识】用dos批处理批量替换文件中的某个字符串(本地单元测试通过,部分功能有待优化,欢迎指正)

简介: 该脚本用于将C盘test目录下所有以t开头的txt文件中的字符串“123”批量替换为“abc”。通过创建批处理文件并运行,可实现自动化文本替换,适合初学者学习批处理脚本的基础操作与逻辑控制。

⭐⭐⭐一、脚本用途说明🌙🌙🌙:

把同一目录下的多个文件中的字符串123替换成字符串abc;

⭐⭐⭐二、操作步骤🌙🌙🌙:

1.将以下批处理脚本copy到本地任意目录,新建一个批量替换.bat文件(随各人喜好定义,文件名不固定);
2.因脚本中目录已经写成c:\test,故请在c盘创建一个test目录,并在该test目录下创建几个以t开头的txt文件,如:test1.txt,test2.txt.test3.txt等(随各人喜好,文件名、文件个数均不限定),但是创建的txt文件请包涵要替换的字符123;
3.直接点击运行批量替换.bat文件,然后打开创建的每个txt文件,观察会发现123都已经被替换成了abc

⭐⭐⭐三、总结🌙🌙🌙:

请各位多调试几次,爱动脑动手的小伙伴可以修改一下文件内容以及按照自己的思路尝试修改一下脚本内容,看看修改后执行的效果如何,这样的话,会理解的更为深刻一些
提示:如果是刚开始接触批处理这块的小伙伴,本脚本就是一个很好的学习范例,小伙伴们可以从中去扩展其他知识点,加油!

⭐⭐⭐四、脚本🌙🌙🌙

@echo off

rem 进入批处理文件所在的路径
cd c:\test

echo ***** Replace "123" as "abc" *****
rem 定义要替换的新旧字符串
set strOld=123
set strNew=abc

rem 定义变量修改本地化延期
setlocal enabledelayedexpansion

rem 循环取出要处理的文件名
for /f "tokens=*" %%i in ('dir c:\test\t*.txt /b') do (
    set "var=%%i"
    if not !var!.==. (
rem 单个文件一行行处理,将旧字段替换成新字段
    for /f "tokens=*" %%j in (!var!) do (
        set "tmp=%%j"
        if not !tmp!.==. (
          set "tmp=!tmp:%strOld%=%strNew%!"
          rem 将处理后的每一行记录追加到temp.txt文件中
          echo !tmp!>>temp.txt
        )
    )
    rem 在单个文件的每一行经过替换操作后,将处理后的文本从temp.txt临时文件剪贴到目标处理文件中(剪贴后临时文件会自动删除)
    move temp.txt !var!
    )
)

pause

五、核心逻辑及思维导图:

DOS批处理脚本逻辑

1. 脚本用途

  • 目的: 批量替换文件中的字符串。
  • 操作: 将目录下文件中的字符串"123"替换为"abc"。

2. 操作步骤

  • 步骤1: 复制脚本到本地目录并创建批处理文件。
  • 步骤2: 在指定目录下创建包含特定字符串的文本文件。
  • 步骤3: 运行批处理文件并检查替换结果。

3. 脚本内容

  • 进入目录: 切换到包含文本文件的目录。
  • 设置变量: 定义要替换的旧字符串和新字符串。
  • 启用延迟变量展开: 为了在循环中正确处理变量。
  • 循环处理文件: 对目录下的每个文本文件进行操作。
    • 读取文件内容: 逐行读取文件内容。
    • 替换字符串: 将每行中的旧字符串替换为新字符串。
    • 写入临时文件: 将替换后的内容写入临时文件。
    • 移动临时文件: 将临时文件内容移动到原文件,完成替换。

4. 脚本示例

  • 命令: @echo off
  • 目录切换: cd c:\test
  • 变量设置: set strOld=123set strNew=abc
  • 循环命令: for /f "tokens=*" %%i in ('dir c:\test\t*.txt /b') do
  • 文件处理: for /f "tokens=*" %%j in (!var!) do
  • 字符串替换: set "tmp=!tmp:%strOld%=%strNew%!"
  • 写入临时文件: echo !tmp!>>temp.txt
  • 移动文件: move temp.txt !var!
  • 暂停命令: pause
目录
相关文章
|
2月前
|
测试技术
Appscan手工探索、手工测试功能实战
Appscan手工探索、手工测试功能实战
|
3月前
|
JSON 移动开发 监控
快速上手|HTTP 接口功能自动化测试
HTTP接口功能测试对于确保Web应用和H5应用的数据正确性至关重要。这类测试主要针对后台HTTP接口,通过构造不同参数输入值并获取JSON格式的输出结果来进行验证。HTTP协议基于TCP连接,包括请求与响应模式。请求由请求行、消息报头和请求正文组成,响应则包含状态行、消息报头及响应正文。常用的请求方法有GET、POST等,而响应状态码如2xx代表成功。测试过程使用Python语言和pycurl模块调用接口,并通过断言机制比对实际与预期结果,确保功能正确性。
267 3
快速上手|HTTP 接口功能自动化测试
|
3月前
|
测试技术 程序员
关于字符串为空的几个性能测试
本文通过实验对比了两种字符串赋值方式(`string str="";` 和 `string str=string.Empty;`)及五种判断字符串是否为空的方法的性能差异。实验结果显示,使用 `string.Empty` 的赋值方式性能更优,且在判断字符串是否为空时,`.Length==0` 方法最为高效,其次是 `str.Equals("")` 和 `str==string.Empty` 等方法。文章提供了详细的测试代码和结果分析。
22 3
关于字符串为空的几个性能测试
|
4月前
|
Windows
基本的Dos命令 在控制台如何进入某一个文件或者进入不同的盘符
这篇文章介绍了如何在Windows DOS命令行环境中进入不同盘符和文件夹,包括使用Win+R快捷键打开运行窗口、通过输入盘符加冒号(如"D:")切换到指定盘符、使用"cd"命令进入文件夹,以及一些基本的文件操作命令如"dir"查看文件和"del"删除文件等。
基本的Dos命令 在控制台如何进入某一个文件或者进入不同的盘符
|
4月前
|
XML Web App开发 数据挖掘
Postman接口测试工具全解析:功能、脚本编写及优缺点探讨
文章详细分析了Postman接口测试工具的功能、脚本编写、使用场景以及优缺点,强调了其在接口自动化测试中的强大能力,同时指出了其在性能分析方面的不足,并建议根据项目需求和个人偏好选择合适的接口测试工具。
129 1
|
4月前
|
Web App开发 敏捷开发 测试技术
自动化测试之美:使用Selenium WebDriver进行网页功能验证
【8月更文挑战第29天】在数字时代,软件质量是企业竞争力的关键。本文将深入探讨如何通过Selenium WebDriver实现自动化测试,确保网页应用的可靠性和性能。我们将从基础设置到编写测试用例,逐步引导读者掌握这一强大的测试工具,同时分享实战经验,让测试不再是开发的负担,而是质量保证的利器。
|
4月前
|
测试技术
一款功能完善的智能匹配1V1视频聊天App应该通过的测试CASE
文章列举了一系列针对1V1视频聊天App的测试用例,包括UI样式、权限请求、登录流程、匹配逻辑、消息处理、充值功能等多个方面的测试点,并标注了每个测试用例的执行状态,如通过(PASS)、失败(FAIL)或需要进一步处理(延期修改、待定、方案再定等)。
69 0
|
4月前
|
JavaScript 前端开发 应用服务中间件
【qkl】JavaScript连接web3钱包,实现测试网络中的 Sepolia ETH余额查询、转账功能
【区块链】JavaScript连接web3钱包,实现测试网络中的 Sepolia ETH余额查询、转账功能
116 0
|
4月前
|
缓存 应用服务中间件 nginx
运维系列.Nginx中使用HTTP压缩功能(二)
运维系列.Nginx中使用HTTP压缩功能(二)
54 0
|
2月前
|
运维 Linux Apache
,自动化运维成为现代IT基础设施的关键部分。Puppet是一款强大的自动化运维工具
【10月更文挑战第7天】随着云计算和容器化技术的发展,自动化运维成为现代IT基础设施的关键部分。Puppet是一款强大的自动化运维工具,通过定义资源状态和关系,确保系统始终处于期望配置状态。本文介绍Puppet的基本概念、安装配置及使用示例,帮助读者快速掌握Puppet,实现高效自动化运维。
62 4