【运维基础知识】用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
目录
相关文章
|
人工智能 搜索推荐 数据管理
探索软件测试中的自动化测试框架选择与优化策略
本文深入探讨了在现代软件开发流程中,如何根据项目特性、团队技能和长期维护需求,精准选择合适的自动化测试框架。
563 11
|
9月前
|
存储 运维 数据可视化
运维过程记录工具深度解析:从原理到实操,一文掌握核心功能与应用场景
运维过程记录是保障系统稳定的关键,缺失记录会导致问题难定位、重复发生及协作低效。通过自动化工具实现操作实时记录、集中管理与可回溯分析,可大幅提升故障排查、安全审计与团队协作效率。未来,记录工具将更智能,助力运维向高效、可控、可预测方向演进。
|
8月前
|
机器学习/深度学习 人工智能 自然语言处理
如何让AI更“聪明”?VLM模型的优化策略与测试方法全解析​
本文系统解析视觉语言模型(VLM)的核心机制、推理优化、评测方法与挑战。涵盖多模态对齐、KV Cache优化、性能测试及主流基准,助你全面掌握VLM技术前沿。建议点赞收藏,深入学习。
2798 8
|
缓存 JavaScript 中间件
如何测试中间件优化后的 Pinia 状态管理?
如何测试中间件优化后的 Pinia 状态管理?
546 163
|
定位技术 开发者
游戏开发者如何使用独享静态代理IP进行测试与优化
随着互联网技术的发展,使用代理IP的人数逐渐增加,特别是在业务需求中需要使用静态代理IP的情况越来越多。本文探讨了独享静态代理IP是否适用于游戏行业,分析了其优势如稳定性、不共享同一IP地址及地理位置选择等,同时也指出了需要注意的问题,包括可能的延迟、游戏兼容性和网络速度等。总体而言,选择合适的代理服务并正确配置,可以有效提升游戏体验。
319 2
|
JSON 测试技术 API
优化你的 REST Assured 测试:设置默认主机与端口、GET 请求与断言
REST Assured 是一个强大的 Java 库,用于简化 RESTful API 测试。本文详解了其核心功能:设置默认主机和端口以减少代码重复、发起 GET 请求并验证响应结果,以及通过断言确保接口行为符合预期。同时推荐 Apipost 工具,助力开发者提升 API 测试效率,实现更高效的接口管理与团队协作。掌握这些技巧,可显著优化测试流程与代码质量。
|
10月前
|
敏捷开发 运维 数据可视化
DevOps看板工具中的协作功能:如何打破开发、测试与运维之间的沟通壁垒
在DevOps实践中,看板工具通过可视化任务管理和自动化流程,提升开发与运维团队的协作效率。它支持敏捷开发、持续交付,助力团队高效应对需求变化,实现跨职能协作与流程优化。
|
人工智能 监控 测试技术
探索软件测试中的自动化框架选择与优化策略####
【10月更文挑战第21天】 本文深入剖析了软件测试领域面临的挑战,聚焦于自动化测试框架的选择与优化这一核心议题。不同于传统摘要的概述方式,本文将以一个虚拟案例“X项目”为线索,通过该项目从手动测试困境到自动化转型的成功历程,生动展现如何根据项目特性精准匹配自动化工具(如Selenium、Appium等),并结合CI/CD流程进行深度集成与持续优化,最终实现测试效率与质量的双重飞跃。读者将跟随“X项目”团队的视角,直观感受自动化框架选型的策略性思考及实践中的优化技巧,获得可借鉴的实战经验。 ####
227 0
|
弹性计算 Ubuntu Linux
阿里云系统运维管理OOS一键安装宝塔面板,这个功能太牛了!
宝塔面板是实用的服务器管理工具,支持多种操作系统(如Ubuntu、CentOS等)。通过阿里云OOS可一键安装。安装前提包括ECS实例运行中且有公网,安全组需开放8888端口。安装步骤简单,进入ECS控制台选择预装应用并确认下单,完成后在控制台查看详情和登录信息。最后验证安装结果,确保能成功访问宝塔面板URL。
697 82
|
11月前
|
运维 监控 Linux
WGCLOUD运维平台的分布式计划任务功能介绍
WGCLOUD是一款免费开源的运维监控平台,支持主机与服务器性能监控,具备实时告警和自愈功能。本文重点介绍其计划任务功能模块,可统一管理Linux和Windows主机的定时任务。相比手动配置crontab或Windows任务计划,WGCLOUD提供直观界面,通过添加cron表达式、执行指令或脚本并选择主机,即可轻松完成任务设置,大幅提升多主机任务管理效率。