【运维基础知识】用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
目录
相关文章
|
4月前
|
运维 Ubuntu 测试技术
自动化运维的利剑:Ansible在配置管理中的应用软件测试的艺术:探索性测试的深度与广度
【8月更文挑战第27天】 在数字化浪潮中,高效的运维工作是支撑企业IT系统稳定运行的关键。Ansible,作为一款简易而强大的自动化运维工具,正逐渐成为IT专业人士的新宠。本文将通过浅显易懂的语言和生动的案例,带你了解Ansible的核心概念、安装步骤、基础命令以及它在配置管理中的实际应用。我们的目标是让初学者能够轻松上手Ansible,同时为有经验的运维工程师提供一些实用的技巧和思路。
|
1月前
|
Windows
DOS 批处理 setlocal命令、endlocal命令详解
DOS 批处理 setlocal命令、endlocal命令详解
47 10
|
1月前
|
Windows
DOS 批处理 setlocal命令、endlocal命令详解
setlocal这是一个命令,它开始局部化环境更改,通常在批处理文件中使用,以确保在脚本中所做的任何环境更改(例如设置或修改环境变量)不会影响到调用此批处理的上下文或其他批处理文件
72 14
|
3月前
|
测试技术 程序员
关于字符串为空的几个性能测试
本文通过实验对比了两种字符串赋值方式(`string str="";` 和 `string str=string.Empty;`)及五种判断字符串是否为空的方法的性能差异。实验结果显示,使用 `string.Empty` 的赋值方式性能更优,且在判断字符串是否为空时,`.Length==0` 方法最为高效,其次是 `str.Equals("")` 和 `str==string.Empty` 等方法。文章提供了详细的测试代码和结果分析。
27 3
关于字符串为空的几个性能测试
|
4月前
|
运维 算法 应用服务中间件
运维系列.Nginx中使用HTTP压缩功能(一)
运维系列.Nginx中使用HTTP压缩功能(一)
92 1
|
4月前
|
运维 Shell Linux
运维专题.Docker功能权限(Capabilities)管理和查看
运维专题.Docker功能权限(Capabilities)管理和查看
148 1
|
4月前
|
运维 应用服务中间件 网络安全
运维系列.Nginx配置文件结构功能总结
运维系列.Nginx配置文件结构功能总结
84 0
运维系列.Nginx配置文件结构功能总结
|
4月前
|
缓存 应用服务中间件 nginx
运维系列.Nginx中使用HTTP压缩功能(二)
运维系列.Nginx中使用HTTP压缩功能(二)
60 0
|
2月前
|
运维 Linux Apache
,自动化运维成为现代IT基础设施的关键部分。Puppet是一款强大的自动化运维工具
【10月更文挑战第7天】随着云计算和容器化技术的发展,自动化运维成为现代IT基础设施的关键部分。Puppet是一款强大的自动化运维工具,通过定义资源状态和关系,确保系统始终处于期望配置状态。本文介绍Puppet的基本概念、安装配置及使用示例,帮助读者快速掌握Puppet,实现高效自动化运维。
69 4
|
28天前
|
机器学习/深度学习 运维 监控
智能化运维:从自动化到AIOps的演进之路####
本文深入探讨了IT运维领域如何由传统手工操作逐步迈向高度自动化,并进一步向智能化运维(AIOps)转型的过程。不同于常规摘要仅概述内容要点,本摘要将直接引入一个核心观点:随着云计算、大数据及人工智能技术的飞速发展,智能化运维已成为提升企业IT系统稳定性与效率的关键驱动力。文章详细阐述了自动化工具的应用现状、面临的挑战以及AIOps如何通过预测性分析和智能决策支持,实现运维工作的质变,引领读者思考未来运维模式的发展趋势。 ####